Heim >Backend-Entwicklung >Python-Tutorial >Wie fülle ich NaN-Werte in einem Pandas-Datenrahmen mit vorhergehenden oder folgenden Werten?

Wie fülle ich NaN-Werte in einem Pandas-Datenrahmen mit vorhergehenden oder folgenden Werten?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-03 11:01:09374Durchsuche

How to Fill NaN Values in a Pandas DataFrame with Preceding or Following Values?

Ersetzen von NaNs durch vorhergehende oder nachfolgende Werte im Pandas DataFrame

Frage

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.

Antwort

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   9
fest

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn