Pandas DataFrame DataFrame.fillna() Funktion
-
Syntax von
pandas.DataFrame.fillna(): -
Beispiel-Codes: Füllen Sie alle
NaN-Werte inDataFramemit der MethodeDataFrame.fillna() -
Beispiel-Codes:
DataFrame.fillna()Methode mit dem Parametermethod -
Beispiel-Codes:
DataFrame.fillna()Methode mit Parameterlimit
Die Funktion pandas.DataFrame.fillna() ersetzt die NaN-Werte in DataFrame durch einen bestimmten Wert.
Syntax von pandas.DataFrame.fillna():
DataFrame.fillna(
value=None, method=None, axis=None, inplace=False, limit=None, downcast=None
)
Parameter
value |
scalar, dict, Series oder DataFrame. Zum Ersetzen von NaN-Werten verwendeter Wert |
method |
backfill, bfill, pad, ffill oder None. Methode zum Auffüllen von NaN-Werten. |
axis |
Fehlende Werte entlang der row (axis=0) oder column (axis=1) auffüllen |
inplace |
Boolesch. Wenn True, modifizieren Sie den Aufrufer DataFrame an Ort und Stelle |
limit |
Ganze Zahl. Wenn die method angegeben wird, ist dies die maximale Anzahl von aufeinanderfolgenden NaN Werten, die vorwärts/rückwärts gefüllt werden sollen. Wenn die method nicht angegeben ist, ist es die maximale Anzahl von NaN in der Achse, die gefüllt werden soll. |
downcast |
Dictionary. Gibt Downcast von Datentypen an |
Zurück
Wenn inplace gleich True ist, wird ein DataFrame alle NaN-Werte durch den angegebenen value ersetzt; andernfalls None.
Beispiel-Codes: Füllen Sie alle NaN-Werte in DataFrame mit der Methode DataFrame.fillna()
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
filled_df = df.fillna(5)
print("Filled DataFrame:")
print(filled_df)
Ausgabe:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.0 4.0
1 2.0 5.0
2 3.0 8.0
3 5.0 5.0
4 3.0 3.0
Es füllt alle NaN-Werte in DataFrame mit 5, die als Argument in der Methode pandas.DataFrame.fillna() zur Verfügung gestellt werden.
DataFrame.fillna() Mit Mittelwert
Es wäre auch eine gute Idee, NaN-Werte einer Spalte durch diese Spalte zu ersetzen.
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
df.fillna(df.mean(),inplace=True)
print("Filled DataFrame:")
print(df)
Ausgabe:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.00 4.0
1 2.00 5.0
2 3.00 8.0
3 2.25 5.0
4 3.00 3.0
Es füllt NaN-Werte der Spalte X mit Hilfe der Spalte X und NaN-Werte der Spalte Y mit Hilfe der Spalte Y.
Aufgrund von inplace=True wird der ursprüngliche DataFrame nach dem Aufruf der Funktion fillna() modifiziert.
DataFrame.fillna() Mit 0
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
df.fillna(0,inplace=True)
print("Filled DataFrame:")
print(df)
Ausgabe:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.0 4.0
1 2.0 0.0
2 3.0 8.0
3 0.0 0.0
4 3.0 3.0
Es füllt alle NaN mit 0.
Beispiel-Codes: DataFrame.fillna() Methode mit dem Parameter method
Wir können auch NaN-Werte in DataFrame füllen, indem wir verschiedene Auswahlmöglichkeiten des Parameters method verwenden.
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
filled_df = df.fillna(method="backfill")
print("Filled DataFrame:")
print(filled_df)
Ausgabe:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.0 4.0
1 2.0 8.0
2 3.0 8.0
3 3.0 3.0
4 3.0 3.0
Die Einstellung method="backfill" füllt alle NaN Werte von DataFrame mit dem Wert nach dem NaN Wert in der gleichen Spalte.
Wir können auch die Methoden bfill, pad und ffill verwenden, um NaN Werte in DataFrame zu füllen.
method |
Beschreibung |
|---|---|
backfill / bfill |
Füllen Sie alle NaN-Werte von DataFrame mit dem Wert nach dem NaN-Wert in der gleichen Spalte. |
ffill / pad |
alle NaN-Werte von DataFrame mit dem Wert vor dem NaN-Wert in der gleichen Spalte füllen. |
Beispiel-Codes: DataFrame.fillna() Methode mit Parameter limit
Der Parameter limit in der Methode DataFrame.fillna() begrenzt die maximale Anzahl von aufeinanderfolgenden NaN-Werten, die von der Methode gefüllt werden sollen.
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2,np.nan, 3,3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
filled_df = df.fillna(3,limit=1)
print("Filled DataFrame:")
print(filled_df)
Ausgabe:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 NaN 8.0
3 3.0 NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.0 4.0
1 2.0 3.0
2 3.0 8.0
3 3.0 NaN
4 3.0 3.0
Sobald ein NaN in einer Spalte gefüllt ist, bleibt der andere NaN Wert in der gleichen Spalte unverändert.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn