Gibt es eine Methode, um Werte in Pandas in Python durch None
zu ersetzen?Wie ersetzt man die Werte im Pandas-Datenrahmen in Python durch None?
Sie können df.replace('pre', 'post')
verwenden und können einen Wert durch einen anderen ersetzen, aber das kann nicht getan werden, wenn Sie mit None
Wert ersetzen möchten, die, wenn Sie versuchen, erhalten Sie ein seltsames Ergebnis.
So, hier ist ein Beispiel:
df = DataFrame(['-',3,2,5,1,-5,-1,'-',9])
df.replace('-', 0)
, die ein erfolgreiches Ergebnis zurückgibt.
Aber
df.replace('-', None)
, die ein folgendes Ergebnis liefert:
0
0 - // this isn't replaced
1 3
2 2
3 5
4 1
5 -5
6 -1
7 -1 // this is changed to `-1`...
8 9
Warum so ein komisches Ergebnis zurückgegeben werden?
Da ich diesen Datenrahmen in MySQL-Datenbank gießen möchte, kann ich NaN
Werte in kein Element in meinem Datenrahmen setzen und stattdessen None
setzen. Sicher können Sie zuerst '-'
zu NaN
ändern und dann NaN
in None
umwandeln, aber ich möchte wissen, warum der Datenrahmen auf solch eine schreckliche Weise handelt.
Ist die 'write_frame' parsen nicht' NaN's zu 'none's? –
Yup. Sie begegnen 'InternalError: (1054, u" Unbekannte Spalte 'nan' in 'Feldliste' ")' Fehler. Ich kenne keine anderen Lösungen, als "NaN" in "None" zu konvertieren, bevor "write_frame" ausgeführt wird. – Blaszard
Welche Version von Pandas benutzt du? –