Gérer les valeurs manquantes après un pivotement (fillna())
Après un pivotement de données avec pivot() ou pivot_table(), il peut y avoir des valeurs manquantes (NaN) dans le DataFrame résultant. Cela se produit généralement lorsqu’il y a des combinaisons de clés (index et colonnes) pour lesquelles il n’y a pas de données. La méthode fillna() permet de remplir ces valeurs manquantes avec une valeur spécifique, comme 0, la moyenne, ou toute autre valeur, afin d’éviter les erreurs lors des analyses ultérieures. Cela permet de rendre les données plus complètes et prêtes à l’emploi pour l’analyse.
Fonctions :
-
df.fillna(0)
La méthode fillna() permet de remplir les valeurs manquantes (NaN) dans un DataFrame ou une Series. Dans le contexte d'un pivotement, après avoir réorganisé les données avec pivot() ou pivot_table(), il est courant d'obtenir des valeurs manquantes lorsque certaines combinaisons de colonnes n'existent pas dans les données source. Par exemple, si un pivotement crée des colonnes pour des catégories qui ne sont pas présentes dans tous les cas, des valeurs manquantes (NaN) apparaîtront. Avec fillna(), vous pouvez spécifier une valeur pour remplacer ces NaN (par exemple, 0, la moyenne, ou une valeur spécifique).
Importation :
import pandas as pd
Attributs :
Paramètre Description value
La valeur utilisée pour remplacer les NaN (par exemple, 0
,None
,moyenne
).method
Peut être utilisé pour propager une valeur selon certaines directions ( ffill
pour forward fill,bfill
pour backward fill).axis
Permet de spécifier si l'on remplace les NaN sur les lignes ( axis=0
) ou les colonnes (axis=1
).inplace
Si True
, remplace les valeurs dans le DataFrame d'origine, sinon crée une nouvelle copie du DataFrame.Exemple de code :
import pandas as pd # Exemple de DataFrame df = pd.DataFrame({ 'id': [1, 2, 3], 'janvier': [100, None, 300], 'février': [110, 210, None], 'mars': [None, 220, 320] }) # Affichage du DataFrame d'origine print("DataFrame d'origine :\n", df) # Remplissage des NaN par 0 après un pivotement ou une transformation df_filled = df.fillna(0) # Affichage du DataFrame après remplissage print("\nDataFrame après fillna(0) :\n", df_filled)
Explication du code :
- DataFrame d'origine :
On peut observer des valeurs manquantes (
NaN
) dans les colonnesjanvier
,février
etmars
.- Après
fillna(0)
:- Les valeurs manquantes (
NaN
) sont remplacées par0
.
- Les valeurs manquantes (
- Après
Remarques pratiques
-
Pivotement avec
NaN
:
Après un pivotement, il peut arriver que certaines combinaisons de valeurs dans les colonnesindex
,columns
etvalues
n'existent pas dans les données sources, ce qui entraîne des valeurs manquantes (NaN
). Le remplissage de ces valeurs avecfillna()
permet de les normaliser. -
Utilisation de
0
:
Utiliser0
pour remplacer les valeurs manquantes est courant lorsqu'on travaille avec des données numériques et qu'on veut éviter l'impact des NaN sur des calculs ultérieurs.
- DataFrame d'origine :