Ich benutze die Pandas-Bibliothek, um einige CSV-Daten einzulesen. In meinen Daten enthalten bestimmte Spalten Zeichenfolgen. Die Zeichenfolge "nan"
ist ein möglicher Wert, ebenso wie eine leere Zeichenfolge. Ich habe es geschafft, Pandas dazu zu bringen, "nan" als Zeichenfolge zu lesen, aber ich kann nicht herausfinden, wie ich es bekomme, einen leeren Wert nicht als NaN zu lesen. Hier sind Beispieldaten und Ausgabe
One,Two,Three
a,1,one
b,2,two
,3,three
d,4,nan
e,5,five
nan,6,
g,7,seven
>>> pandas.read_csv('test.csv', na_values={'One': [], "Three": []})
One Two Three
0 a 1 one
1 b 2 two
2 NaN 3 three
3 d 4 nan
4 e 5 five
5 nan 6 NaN
6 g 7 seven
Es liest "nan" korrekt als Zeichenfolge "nan", liest aber immer noch die leeren Zellen als NaN. Ich habe versucht, str
das converters
Argument an read_csv (with converters={'One': str})
) zu übergeben, aber es liest die leeren Zellen immer noch als NaN.
Mir ist klar, dass ich die Werte nach dem Lesen mit fillna füllen kann, aber gibt es wirklich keine Möglichkeit, Pandas mitzuteilen, dass eine leere Zelle in einer bestimmten CSV-Spalte als leere Zeichenfolge anstelle von NaN gelesen werden sollte?
keep_default_na
unten.