Die Python-Pandas DataFrame.fillna()-Funktion wird verwendet, um fehlende Werte in einem DataFrame zu ersetzen. Das ist in vielen Fällen hilfreich, um Da­ten­be­rei­ni­gungs­pro­zes­se zu er­leich­tern oder Analysen durch­zu­füh­ren.

Syntax von Pandas fillna()

Die fillna()-Funktion nimmt bis zu fünf Parameter entgegen und ist syn­tak­tisch wie folgt aufgebaut:

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

Relevante Parameter

Das Verhalten von Pandas DataFrame.fillna() kann unter Zu­hil­fe­nah­me ver­schie­de­ner Parameter angepasst werden:

Parameter Be­schrei­bung De­fault­wert
value Ein ska­lier­ter Wert oder ein Dic­tion­a­ry bzw. eine Serie zur Ersetzung der NaNs None
method Gibt die Methode zum Füllen an; Vor­wärts­auf­fül­len (ffill) oder Rück­wärts­auf­fül­len (bfill) None
axis Bestimmt, entlang welcher Achse die Operation durch­ge­führt wird (0 oder index für Zeilen, 1 oder columns für Spalten) 0
inplace Wenn True, werden die Än­de­run­gen direkt im ur­sprüng­li­chen DataFrame durch­ge­führt. False
limit Integer, der die Anzahl zu er­set­zen­der NaN-Werte begrenzt None
Hinweis

In zu­künf­ti­gen Versionen wird der Parameter methodvor­aus­sicht­lich nicht mehr un­ter­stützt werden. Pro­gram­mie­re­rin­nen und Pro­gram­mie­rer können dann auf obj.ffill() bzw. obj.bfill() zu­rück­grei­fen. Die beiden Funk­tio­nen haben denselben Effekt wie der ent­spre­chen­de method-Parameter.

Anwendung von Pandas DataFrame.fillna()

Die Pandas-fillna()-Funktion kann auf ver­schie­de­ne Weise genutzt werden:

Ersetzen von NaN-Werten durch einen festen Wert

In einem ersten Schritt wir ein DataFrame definiert:

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 soeben de­fi­nier­te DataFrame sieht fol­gen­der­ma­ßen aus:

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

Beachten Sie, dass in Python Pandas der Wert None in Da­ta­Frames und Series als NaN in­ter­pre­tiert wird.

Um die fehlenden Werte nun durch den Wert 0 zu ersetzen, kann die Pandas-Funktion fillna() genutzt werden:

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

Im Ergebnis wurde jedes NaN durch den Wert 0 ersetzt, der der Funktion übergeben wurde:

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

Ver­wen­dung der Vor­wärts­füll­me­tho­de ffill

Wenn die NaN-Werte mit den vor­her­ge­hen­den Werten der je­wei­li­gen Spalte auf­ge­füllt werden sollen, kann die Methode ffill genutzt werden, die der Funktion als Parameter übergeben wird:

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

In diesem Beispiel wurden die NaN-Werte in den Spalten „A“ und „C“ durch die vor­her­ge­hen­den Werte in derselben Spalte ersetzt. Da es in der Spalte „B“ keinen vor­aus­ge­hen­den Wert gab, verbleibt dort der Wert NaN:

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­se Ver­wen­dung der Rück­wärts­füll­me­tho­de bfill

Die NaN-Werte können auch mit ihren Nach­fol­ge­wer­ten der je­wei­li­gen Zeile auf­ge­füllt werden. Hierzu muss nicht nur die Methode bfill genutzt werden, sondern es muss darüber hinaus der axis-Parameter auf 1 gesetzt werden:

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

Im Ergebnis sind die NaN-Werte in der nullten und zweiten Zeile durch ihre je­wei­li­gen Nach­fol­ge­wer­te ersetzt worden. Nur in der ersten Spalte verbleibt noch einen NaN-Wert, denn es gibt in dieser Zeile keinen ent­spre­chen­den Nach­fol­ge­wert:

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
Web­hos­ting
Das beste Web­hos­ting zum Spit­zen­preis
  • 3x schneller und 60 % günstiger
  • Maximale Ver­füg­bar­keit mit > 99.99 %
  • Nur bei IONOS: Bis zu 500 GB Spei­cher­platz inklusive
Zum Hauptmenü