Pandas DataFrame DataFrame.fillna() Fonction
-
Syntaxe de
pandas.DataFrame.fillna(): -
Exemples de codes: remplissez toutes les valeurs de
NaNdansDataFrameavec la méthodeDataFrame.fillna() -
Exemples de codes: méthode
DataFrame.fillna()avec le paramètremethod -
Exemples de codes: méthode
DataFrame.fillna()avec paramètrelimit
La fonction pandas.DataFrame.fillna() permet de remplacer les valeurs de NaN dans DataFrame avec une certaine valeur.
Syntaxe de pandas.DataFrame.fillna():
DataFrame.fillna(
value=None, method=None, axis=None, inplace=False, limit=None, downcast=None
)
Paramètres
value |
scalar, dict, Series, or DataFrame. Value used to replace NaN values |
method |
backfill, bfill, pad, ffill or None. Method used for filling NaN values. |
axis |
Remplissez les valeurs manquantes le long de la ligne (axis = 1) ou de la colonne (axis = 1) |
inplace |
Booléen. Si True, modifiez l’appelant DataFrame sur place |
limit |
Entier. Si la méthode est spécifiée, c’est le nombre maximum de valeurs NaN consécutives à remplir vers l’avant / vers l’arrière. Si la methode n’est pas donnée, c’est le nombre maximum de NaN dans l’axe à remplir. |
downcast |
Dictionnaire. Spécifie le downcast des types de données |
Revenir
Si inplace est True, un DataFrame remplaçant toutes les valeurs de NaN par une value donnée; sinon None.
Exemples de codes: remplissez toutes les valeurs de NaN dans DataFrame avec la méthode 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)
Production:
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
Il remplit toutes les valeurs de NaN dans DataFrame avec 5 fourni comme argument dans la méthode pandas.DataFrame.fillna().
DataFrame.fillna() avec une moyenne
Il serait également judicieux de remplacer les valeurs NaN d’une colonne par cette colonne.
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)
Production:
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
Il remplit les valeurs NaN de la colonne X au moyen de la colonne X et les valeurs NaN de la colonne Y au moyen de la colonne Y.
En raison de inplace = True, le DataFrame d’origine est modifié après avoir appelé la fonction fillna().
DataFrame.fillna() avec 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)
Production:
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
Il remplit tous les NaN avec 0.
Exemples de codes: méthode DataFrame.fillna() avec le paramètre method
Nous pouvons également remplir les valeurs de NaN dans DataFrame en utilisant différents choix du paramètre method.
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)
Production:
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
Le paramètre method="backfill" remplit toutes les valeurs NaN de DataFrame avec la valeur après la valeur NaN dans la même colonne.
Nous pouvons également utiliser les méthodes bfill, pad et ffill pour remplir les valeurs de NaN dans DataFrame.
method |
La description |
|---|---|
backfill / bfill |
remplissez toutes les valeurs NaN de DataFrame avec la valeur après la valeur NaN dans la même colonne. |
ffill / pad |
remplissez toutes les valeurs NaN de DataFrame avec la valeur avant la valeur NaN dans la même colonne. |
Exemples de codes: méthode DataFrame.fillna() avec paramètre limit
Le paramètre limit dans la méthode DataFrame.fillna() limite le nombre maximum de valeurs NaN consécutives à remplir par la méthode.
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)
Production:
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
Ici, une fois qu’un NaN est rempli dans une colonne, l’autre valeur de NaN dans la même colonne reste telle qu’elle est.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn