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 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)
    Résultat du code

    Explication du code :

    import pandas as pd importe la bibliothèque pandas, renommée ici en pd pour simplifier son utilisation dans le code.

    Exemple de DataFrame avec des valeurs manquantes

    Le dictionnaire data contient 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 par None). Ce dictionnaire est utilisé pour créer un DataFrame df.

    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' et aggfunc='sum').

    Le paramètre fill_value=0 est 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.