Gérer les valeurs manquantes dans un pivot_table
Lors de la création d’un tableau croisé dynamique, il est fréquent de rencontrer des valeurs manquantes dues à l’absence de certaines combinaisons de catégories dans les données sources. Gérer ces valeurs manquantes est essentiel pour garantir la cohérence et la lisibilité du tableau. Il est possible de les remplacer par une valeur par défaut, de les ignorer ou de les traiter spécifiquement selon le contexte d’analyse, afin d’éviter des interprétations erronées ou des erreurs dans les calculs d’agrégation.
Fonctions :
-
pivot_table(fill_value=0)
La fonction pivot_table() dans pandas permet de créer des tableaux croisés dynamiques à partir de données, mais dans certains cas, des valeurs manquantes peuvent apparaître dans les résultats. Le paramètre fill_value permet de remplacer ces valeurs manquantes (NaN) par une valeur spécifique, comme 0 ou une autre valeur par défaut. Cela peut être utile pour éviter des erreurs ou pour compléter les tableaux croisés de manière plus significative.
Importation :
import pandas as pdAttributs :
Paramètre Type Description Valeur par défaut indexstr ou list La colonne (ou les colonnes) à utiliser comme index du tableau croisé. Nonecolumnsstr ou list La colonne (ou les colonnes) à utiliser comme colonnes du tableau croisé. Nonevaluesstr La colonne contenant les valeurs numériques à agréger. Noneaggfuncstr ou function La fonction d'agrégation à appliquer aux valeurs. Exemple : 'mean','sum','min','max', etc.'mean'fill_valuescalar, optionnel La valeur à utiliser pour remplacer les valeurs manquantes dans le tableau croisé dynamique (NaN). NoneExemple de code :
import pandas as pd # Exemple de DataFrame avec des valeurs manquantes data = { 'produit': ['A', 'B', 'A', 'C', 'B', 'C', 'A'], 'mois': ['Jan', 'Jan', 'Feb', 'Feb', 'Mar', 'Mar', 'Jan'], 'ventes': [100, 150, 200, 250, None, 350, None] } df = pd.DataFrame(data) # Créer un tableau croisé dynamique en remplaçant les valeurs manquantes par 0 pivot = df.pivot_table(index='mois', columns='produit', values='ventes', aggfunc='sum', fill_value=0) print("Tableau croisé dynamique avec valeurs manquantes remplacées par 0 :") print(pivot)
Explication du code :
import pandas as pdimporte la bibliothèque pandas, renommée ici enpdpour simplifier son utilisation dans le code.Exemple de DataFrame avec des valeurs manquantes
Le dictionnaire
datacontient trois clés :'produit','mois', et'ventes', chacune associée à une liste de valeurs. Certaines valeurs de la colonne'ventes'sont manquantes (représentées parNone). Ce dictionnaire est utilisé pour créer un DataFramedf.Créer un tableau croisé dynamique en remplaçant les valeurs manquantes par 0
La méthode
pivot_table()est utilisée pour créer un tableau croisé dynamique à partir du DataFrame. Elle permet de résumer les données en fonction de certaines catégories. Ici, les données sont regroupées par mois (index='mois') et par produit (columns='produit'). La somme des ventes est calculée pour chaque combinaison de mois et de produit (values='ventes'etaggfunc='sum').Le paramètre
fill_value=0est utilisé pour remplacer les valeurs manquantes par zéro. Cela garantit qu'aucune valeur manquante ne figure dans le tableau croisé dynamique.Le résultat est assigné à la variable
pivot, qui contient le tableau croisé dynamique des ventes avec les valeurs manquantes remplacées par 0.Enfin,
print(pivot)affiche le tableau croisé dynamique, montrant la somme des ventes pour chaque produit et mois, avec les valeurs manquantes remplacées par zéro.