Pandas DataFrame DataFrame.fillna() Fonction

Suraj Joshi 30 janvier 2023
  1. Syntaxe de pandas.DataFrame.fillna():
  2. Exemples de codes: remplissez toutes les valeurs de NaN dans DataFrame avec la méthode DataFrame.fillna()
  3. Exemples de codes: méthode DataFrame.fillna() avec le paramètre method
  4. Exemples de codes: méthode DataFrame.fillna() avec paramètre limit
Pandas DataFrame DataFrame.fillna() Fonction

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.

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Article connexe - Pandas DataFrame