Ich habe ein DataFrame
(ziemlich groß, schwer & c zu reproduzieren), für die ich dieses Verhalten beobachten:Pandas "fillna" ignoriert die "Inplace = True" Stichwort
>>> df.info(verbose=True,memory_usage=True,null_counts=True)
<class 'pandas.core.frame.DataFrame'>
Int64Index: 49841 entries, 0 to 49878
Data columns (total 70 columns):
...
channel 25101 non-null object
...
dtypes: bool(10), datetime64[ns](6), float64(2), int64(32), object(20)
memory usage: 23.7+ MB
>>> df.channel.fillna("Unknown",inplace=True)
>>> df.info(verbose=True,memory_usage=True,null_counts=True)
<class 'pandas.core.frame.DataFrame'>
Int64Index: 49841 entries, 0 to 49878
Data columns (total 70 columns):
...
channel 25101 non-null object
...
dtypes: bool(10), datetime64[ns](6), float64(2), int64(32), object(20)
memory usage: 23.7+ MB
IOW, es scheint, dass df.channel.fillna("Unknown",inplace=True)
hat keine Wirkung.
Wie kann das sein? Ist das ein Fehler? Was mache ich falsch ?!
PS. Zusammenfassung aus den Kommentaren:
df.is_copy
istNone
df._is_view
istFalse
channel
ist eine Spalte, kein Attribut, weil es voninfo
was bedeutet 'df [! Df.channel = df.channel.fillna ('Unbekannte')]' kehrt? – Boud
Ich vermute, es ersetzt nichts, da der Inplace-Code, den Sie schreiben, funktionieren soll, wenn Sie nicht bereits eine Ansicht – Boud
"inplace: boolean, default Falsch Wenn True, füllen Sie Stelle. Hinweis: Dies wird alle anderen Ansichten ändern auf diesem Objekt (z. B. eine Kopie ohne Kopie für eine Spalte in einem DataFrame). ". Wäre das der Kern des Problems? –