Setup-
die Probe Datenrahmen Betrachten df
df = pd.DataFrame(dict(A=[1, None], B=[None, 2], C=[None, 'D']))
df
A B C
0 1.0 NaN None
1 NaN 2.0 D
ich den Fehler bestätigen können
df.fillna(dict(A=1, B=None, C=4))
ValueError: must specify a fill method or value
Dies geschieht beca pandas verwendet zyklisch die Tasten im Wörterbuch und führt für jede relevante Spalte einen fillna
aus. Wenn Sie bei der Unterzeichnung des Verfahrens pd.Series.fillna
aussehen
Series.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
Sie werden der Standardwert sehen None
ist. So können wir diesen Fehler mit
df.A.fillna(None)
replizieren oder äquivalent
df.A.fillna()
ich will hinzufügen, dass ich nicht sehr überrascht, bedenkt, dass Sie einen Nullwert mit einem Nullwert zu füllen versuchen.
Was Sie brauchen, ist eine Arbeit um
Lösung
Verwenden pd.DataFrame.fillna
über Spalten, die Sie mit Nicht-Null-Werte füllen wollen. Dann folgen Sie einem pd.DataFrame.replace
für die spezifischen Spalten, die Sie einen Nullwert mit einem anderen tauschen möchten.
df.fillna(dict(A=1, C=2)).replace(dict(B={np.nan: None}))
A B C
0 1.0 None 2
1 1.0 2 D
Tippfehler passieren um last_name 'd = { 'first_name': 'Andrii', 'last_name': 'Furmanets', 'created_at': Keine}' – Wen
in einem Schwimmer Spalte, keine ist de-facto vertreten durch np.nan (und in den meisten Typen). Das ergibt also keinen Sinn. Sehen Sie die Dokumentation hier von https://github.com/pandas-dev/pandas/issues/10871 – Wen
Verpasste ein einfaches Zitat (') nach dem Nachnamen, wie @Wen sagte. Kannst du deinen Beitrag bearbeiten? –