Gérer les valeurs manquantes dans un pivot_table
Lorsque vous créez un tableau croisé dynamique avec pivot_table(), il peut y avoir des cases vides si certaines combinaisons d’index et de colonnes n’existent pas dans les données. La méthode pivot_table() permet de gérer ces valeurs manquantes en spécifiant un paramètre fill_value. Ce paramètre permet de définir une valeur de remplacement pour les cases vides, comme 0, la moyenne, ou toute autre valeur de votre choix. Cela garantit que le tableau croisé dynamique est complet et ne contient pas de valeurs manquantes.
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 pd
Attributs :
Paramètre Type Description Valeur par défaut index
str ou list La colonne (ou les colonnes) à utiliser comme index du tableau croisé. None
columns
str ou list La colonne (ou les colonnes) à utiliser comme colonnes du tableau croisé. None
values
str La colonne contenant les valeurs numériques à agréger. None
aggfunc
str ou function La fonction d'agrégation à appliquer aux valeurs. Exemple : 'mean'
,'sum'
,'min'
,'max'
, etc.'mean'
fill_value
scalar, optionnel La valeur à utiliser pour remplacer les valeurs manquantes dans le tableau croisé dynamique (NaN). None
Exemple 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 :
- DataFrame : Le DataFrame contient des informations sur les ventes de différents produits (A, B, C) pour chaque mois (Jan, Feb, Mar). Certaines ventes sont manquantes (None).
- Création du tableau croisé dynamique : La méthode
pivot_table()
est utilisée pour résumer les ventes :index='mois'
: Les mois sont utilisés comme index du tableau croisé.columns='produit'
: Les produits (A, B, C) sont utilisés comme colonnes.values='ventes'
: Les ventes sont les valeurs numériques à agréger.aggfunc='sum'
: La fonction d'agrégation utilisée ici est la somme des ventes pour chaque combinaison de mois et de produit.fill_value=0
: Les valeurs manquantes (NaN) sont remplacées par 0 dans le tableau croisé dynamique.
Remarque :
- Autres valeurs pour
fill_value
: Vous pouvez remplacer les valeurs manquantes par toute autre valeur, par exemple une valeur moyenne ou une constante comme 0 ou-1
, selon le contexte de vos données.