I-Daten in Blöcken wie dies aus einer CSV lese:Pandas Hinzufügen einige zusätzliche Spalten basierend auf viele Bedingungen
for chunk in pd.read_csv(file, chunksize=50000, names = col_names, header = 0, dtype = dtype):
chunk['derived_field_1'] = [1 if x == 'High' else -1 for x in chunk['indicator']]
Die oben arbeitet und es basiert auf einer Bedingung. Ich möchte dies basierend auf Bedingungen auf zwei Feldern tun. die Gesamtzahl der Kombinationen von Werten zu machen Als Beispiel seine 8.
chunk['derived_field_2'] = [chunk['column_1'] if ((x == 'Red' for x in chunk['Color']) and (y == 'High' for y in chunk['Indicator'])) else
chunk['column_2'] if ((x == 'Green' for x in chunk['Color']) and (y == 'Low' for y in chunk['Indicator'])) else 0]
ich die oben und fahre mit dem anderen Zustand für 6 weitere Bedingungen wie die oben tun will. Dies ist fehlgeschlagen, die beiden for-Schleifen funktionieren nicht. Ich bekomme diesen Fehler -
raise ValueError('Length of values does not match length of ' 'index')
ValueError: Length of values does not match length of index
Würde jemand den Grund für diesen Fehler wissen?
Danke für die Antwort :) – CodeGeek123
Hallo dies immer noch den Fehler auslöst: raise Valueerror (‚Länge von Werten entspricht nicht Länge von‘ ‚index‘) ValueError: Die Länge der Werte stimmt nicht mit der Länge des Index überein. Hast du das schon einmal gesehen? Ich habe die min_itemsize auf eine höhere Nummer gesetzt, aber das hat nicht funktioniert. – CodeGeek123
Ich kann mir keinen Grund vorstellen, warum es scheitern würde. Nur auf einer kleinen Datei getestet, scheint gut zu funktionieren. – Psidom