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
Freigeben: 2024-12-03 11:01:09
Original
371 Leute haben es durchsucht

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren
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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage