Ich versuche Folgendes:Bearbeiten eines Werts in einem Datenrahmen
Importieren Sie eine CSV-Datei mit UPC-Codes in einen Datenrahmen. Wenn der UPC-Code 11 Zeichen enthält, fügen Sie ihm '0' hinzu. Ex: 19962123818 -> 019962123818
Dies ist der Code:
#check UPC code length. If 11 characters, adds '0' before. If < 11 or > 13, throws Error
for index, row in clean_data.iterrows():
if len(row['UPC']) == 11:
row['UPC'] = ('0' + row['UPC'])
#clean_data.set_value(row, 'UPC',('0' + (row['UPC']))
print ("Edited UPC:", row['UPC'], type(row['UPC']))
if len(row['UPC']) < 11 or len(row['UPC']) > 13:
print ('Error, UPC length < 11 or > 13:')
print ("Error in UPC:", row['UPC'])
quit()
Allerdings, wenn ich die Daten zu drucken, wird der ursprüngliche Wert nicht bearbeitet:
Weiß jemand, Was verursacht dieses Problem?
Ich versuchte die set_value-Methode wie in anderen Posts erwähnt, aber es hat nicht funktioniert.
Danke!
Danke für den vektorisierten Ansatz, viel sauberer! Allerdings bekomme ich folgende Fehler, und der Wert wird die Aktualisierung noch nicht:
Was ist Ihre Pandas Version? –
Es ist Version 0.18.1 –
Tut mir leid, in der Tat schlägt die Fehlermeldung die Korrektur vor, nämlich '.loc [UPC_11_char, 'UPC']' zu verwenden, obwohl Ihre '.ix' genauso gut funktioniert. –