Pandas fillna() zum Ersetzen von NaN-Werten
Die Python-Pandas DataFrame.fillna()-Funktion wird verwendet, um fehlende Werte in einem DataFrame zu ersetzen. Das ist in vielen Fällen hilfreich, um Datenbereinigungsprozesse zu erleichtern oder Analysen durchzuführen.
Syntax von Pandas fillna()
Die fillna()-Funktion nimmt bis zu fünf Parameter entgegen und ist syntaktisch wie folgt aufgebaut:
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)pythonRelevante Parameter
Das Verhalten von Pandas DataFrame.fillna() kann unter Zuhilfenahme verschiedener Parameter angepasst werden:
| Parameter | Beschreibung | Defaultwert |
|---|---|---|
value
|
Ein skalierter Wert oder ein Dictionary bzw. eine Serie zur Ersetzung der NaNs | None
|
method
|
Gibt die Methode zum Füllen an; Vorwärtsauffüllen (ffill) oder Rückwärtsauffüllen (bfill)
|
None
|
axis
|
Bestimmt, entlang welcher Achse die Operation durchgeführt wird (0 oder index für Zeilen, 1 oder columns für Spalten)
|
0 |
inplace
|
Wenn True, werden die Änderungen direkt im ursprünglichen DataFrame durchgeführt.
|
False
|
limit
|
Integer, der die Anzahl zu ersetzender NaN-Werte begrenzt | None
|
In zukünftigen Versionen wird der Parameter methodvoraussichtlich nicht mehr unterstützt werden. Programmiererinnen und Programmierer können dann auf obj.ffill() bzw. obj.bfill() zurückgreifen. Die beiden Funktionen haben denselben Effekt wie der entsprechende method-Parameter.
Anwendung von Pandas DataFrame.fillna()
Die Pandas-fillna()-Funktion kann auf verschiedene 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)pythonDer soeben definierte DataFrame sieht folgendermaß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.0Beachten Sie, dass in Python Pandas der Wert None in DataFrames und Series als NaN interpretiert 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)pythonIm 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.0Verwendung der Vorwärtsfüllmethode ffill
Wenn die NaN-Werte mit den vorhergehenden Werten der jeweiligen Spalte aufgefü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)pythonIn diesem Beispiel wurden die NaN-Werte in den Spalten „A“ und „C“ durch die vorhergehenden Werte in derselben Spalte ersetzt. Da es in der Spalte „B“ keinen vorausgehenden 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.0Zeilenweise Verwendung der Rückwärtsfüllmethode bfill
Die NaN-Werte können auch mit ihren Nachfolgewerten der jeweiligen Zeile aufgefü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)pythonIm Ergebnis sind die NaN-Werte in der nullten und zweiten Zeile durch ihre jeweiligen Nachfolgewerte ersetzt worden. Nur in der ersten Spalte verbleibt noch einen NaN-Wert, denn es gibt in dieser Zeile keinen entsprechenden Nachfolgewert:
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- 3x schneller und 60 % günstiger
- Maximale Verfügbarkeit mit > 99.99 %
- Nur bei IONOS: Bis zu 500 GB Speicherplatz inklusive

