Heim >Backend-Entwicklung >Python-Tutorial >Wie kann man NaN-Werte in Pandas-DataFrames mithilfe von „ffill' und „bfill' effizient ersetzen?

Wie kann man NaN-Werte in Pandas-DataFrames mithilfe von „ffill' und „bfill' effizient ersetzen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-01 19:05:10904Durchsuche

How to Efficiently Replace NaN Values in Pandas DataFrames using `ffill` and `bfill`?

Ersetzen von NaNs durch vorhergehende oder nächste Werte in Pandas-DataFrames

Beim Umgang mit Pandas-DataFrames werden fehlende Daten als NaNs (keine Zahl) dargestellt. kann eine Herausforderung für die Datenanalyse darstellen. Eine häufige Aufgabe besteht darin, diese NaNs durch geeignete Werte zu ersetzen, die aus vorhandenen Daten abgeleitet werden. Ein einfacher Ansatz besteht darin, den DataFrame zu durchlaufen und Werte explizit zu ändern. Pandas bietet jedoch effizientere Lösungen, die die Verwendung von Schleifen vermeiden.

Vorwärtsfüllung (ffill)

Um NaNs durch den ersten Nicht-NaN-Wert darüber zu ersetzen Wenn Sie dieselbe Spalte verwenden möchten, verwenden Sie die Methode fillna mit der Option ffill (Vorwärtsfüllung). Diese Methode gibt die letzte gültige Beobachtung an nachfolgende gültige Beobachtungen weiter.

import pandas as pd
df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])
df.fillna(method='ffill')

Ausgabe:

   0  1  2
0  1  2  3
1  4  2  3
2  4  2  9

Zusätzliche Überlegungen

  • Die erste Zeile im DataFrame sollte keine NaNs enthalten, da sie als Referenzpunkt für das Füllen dient.
  • Die Die ffill-Methode arbeitet spaltenweise, das heißt, sie füllt NaNs in jeder Spalte separat.
  • Um eine Rückwärtsfüllung durchzuführen (NaNs durch den nächsten Nicht-NaN-Wert darunter zu ersetzen), verwenden Sie die Option bfill (Rückwärtsfüllung).
  • Um den DataFrame inplace zu ändern, ohne eine neue Variable zu erstellen, setzen Sie den Inplace-Parameter auf True:
df.fillna(method='ffill', inplace=True)

Das obige ist der detaillierte Inhalt vonWie kann man NaN-Werte in Pandas-DataFrames mithilfe von „ffill' und „bfill' effizient ersetzen?. 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