Heim >Backend-Entwicklung >Python-Tutorial >Wie fülle ich NaN-Werte in einem Pandas-Datenrahmen mit vorhergehenden oder folgenden Werten?
Betrachten Sie einen DataFrame mit NaNs:
In [1]: import pandas as pd df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]]) In [2]: df 0 1 2 0 1 2 3 1 4 NaN NaN 2 NaN NaN 9
Das Ziel besteht darin, jedes NaN durch den nächstgelegenen Nicht-NaN-Wert in derselben Spalte oben zu ersetzen Es. Gehen Sie davon aus, dass die erste Zeile niemals NaNs enthält.
Eine effiziente Möglichkeit, dies zu erreichen, ist die Verwendung der Fillna-Methode des DataFrame:
In [3]: df.fillna(method='ffill') 0 1 2 0 1 2 3 1 4 2 3 2 4 2 9
Die Fillna-Methode verwendet die Forward Fill (ffill)-Strategie, die NaNs durch die letzte gültige Beobachtung darin ersetzt Spalte.
Um das Gegenteil zu erreichen, können Sie die bfill-Methode (Rückwärtsfüllung) verwenden:
In [4]: df.fillna(method='bfill') 0 1 2 0 1 2 3 1 4 4 3 2 9 9 9
Die fillna-Methode ändert den DataFrame nicht direkt. Um den ursprünglichen DataFrame zu aktualisieren, legen Sie inplace=True:
In [5]: df.fillna(method='ffill', inplace=True) In [6]: df 0 1 2 0 1 2 3 1 4 2 3 2 4 2 9fest
Das obige ist der detaillierte Inhalt vonWie fülle ich NaN-Werte in einem Pandas-Datenrahmen mit vorhergehenden oder folgenden Werten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!