Pandas DataFrame DataFrame.fillna() Funktion

Suraj Joshi 30 Januar 2023
  1. Syntax von pandas.DataFrame.fillna():
  2. Beispiel-Codes: Füllen Sie alle NaN-Werte in DataFrame mit der Methode DataFrame.fillna()
  3. Beispiel-Codes: DataFrame.fillna() Methode mit dem Parameter method
  4. Beispiel-Codes: DataFrame.fillna() Methode mit Parameter limit
Pandas DataFrame DataFrame.fillna() Funktion

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 avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Verwandter Artikel - Pandas DataFrame