Die Python-Pandas DataFrame.fillna()-Funktion nutzt du, um fehlende Werte in einem DataFrame zu ersetzen. Das hilft dir dabei, deine Daten un­kom­pli­ziert zu be­rei­ni­gen und präzise Analysen durch­zu­füh­ren.

Syntax von Pandas fillna()

Die fillna()-Funktion ak­zep­tiert bis zu fünf Parameter. Der Aufbau sieht so aus:

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)
python

Relevante Parameter

Du kannst das Verhalten von pandas DataFrame.fillna() mit diesen Pa­ra­me­tern in­di­vi­du­ell steuern:

Parameter Be­schrei­bung Stan­dard­wert
value Ein einzelner Wert, ein Dic­tion­a­ry oder eine Serie, um NaNs zu ersetzen. None
method Bestimmt die Füll­me­tho­de: Vorwärts (ffill) oder Rückwärts (bfill). None
axis Legt die Achse fest (0 oder index für Zeilen, 1 oder columns für Spalten). 0
inplace Bei True wird der ur­sprüng­li­che DataFrame direkt über­schrie­ben. False
limit Ganzzahl, die begrenzt, wie viele NaN-Werte maximal ersetzt werden. None
Hinweis

Gut zu wissen: Der Parameter method wird in künftigen Versionen ver­mut­lich nicht mehr un­ter­stützt. Nutze statt­des­sen am besten gleich obj.ffill() oder obj.bfill(). Diese Funk­tio­nen liefern dir dasselbe Ergebnis wie der bisherige method-Parameter.

So wendest du pandas DataFrame.fillna() an

Du kannst die pandas-fillna()-Funktion flexibel einsetzen:

NaN-Werte durch einen fixen Wert ersetzen

Zuerst erstellen wir einen Beispiel-DataFrame:

import pandas as pd
# Beispiel DataFrame mit verschiedenen Werten
data = {
    'A': [1, 2, None, 4],
    'B': [None, 2, 3, 4],
    'C': [1, None, 3, 4]
}
df = pd.DataFrame(data)
print(df)
python

Der de­fi­nier­te DataFrame stellt sich so dar:

A    B    C
0  1.0  NaN  1.0
1  2.0  2.0  NaN
2  NaN  3.0  3.0
3  4.0  4.0  4.0
Hinweis

In python pandas wird der Wert None innerhalb von Da­ta­Frames und Series au­to­ma­tisch als NaN erkannt.

Um die Lücken nun mit einer 0 zu füllen, nutzt du einfach fillna():

# Ersetzen der fehlenden Werte durch den Wert 0
df_filled = df.fillna(0)
print(df_filled)
python

Als Resultat wurde jedes NaN durch die Zahl 0 ersetzt:

A    B    C
0  1.0  0.0  1.0
1  2.0  2.0  0.0
2  0.0  3.0  3.0
3  4.0  4.0  4.0

Vor­wärts­fül­len mit ffill

Möchtest du NaN-Werte mit dem jeweils vor­he­ri­gen Wert der Spalte auffüllen? Dann übergib der Funktion die Methode ffill:

# Ersetzen aller NaN-Werte durch den vorhergehenden Wert
df_ffill = df.fillna(method='ffill')
print(df_ffill)
python

Hier wurden die NaNs in den Spalten „A“ und „C“ durch die Werte darüber ersetzt. In Spalte „B“ bleibt NaN bestehen, da kein Wert davor existiert:

A    B    C
0  1.0  NaN  1.0
1  2.0  2.0  1.0
2  2.0  3.0  3.0
3  4.0  4.0  4.0

Zei­len­wei­ses Rück­wärts­fül­len mit bfill

Du kannst Lücken auch mit dem jeweils nächsten Wert in der Zeile schließen. Kom­bi­nie­re dazu die Methode bfill mit dem axis-Parameter auf 1:

df_bfill = df.fillna(method='bfill', axis=1)
print(df_bfill)
python

Dadurch werden die NaNs in der ersten und dritten Zeile durch ihre Nach­fol­ger ersetzt. Nur in der ersten Spalte bleibt ein NaN übrig, falls dort kein Nach­fol­ge­wert in der Zeile vorhanden ist:

A    B    C
0  1.0  1.0  1.0
1  2.0  2.0  NaN
2  3.0  3.0  3.0
3  4.0  4.0  4.0
Zum Hauptmenü