Gérer les valeurs manquantes après un pivotement

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

    Explication du code :

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

    Exemple de DataFrame

    Un DataFrame nommé df est créé avec les colonnes suivantes : id, janvier, février, et mars. Certaines valeurs sont manquantes (NaN) pour simuler des données incomplètes.

    df = pd.DataFrame({
        'id': [1, 2, 3],
        'janvier': [100, None, 300],
        'février': [110, 210, None],
        'mars': [None, 220, 320]
    })

    Ce code crée un DataFrame où certaines valeurs de ventes sont manquantes (représentées par None, qui est équivalent à NaN dans pandas).

    Affichage du DataFrame d'origine

    La ligne print("DataFrame d'origine :\n", df) affiche le DataFrame original, avec les valeurs manquantes (NaN) présentes dans certaines cellules.

    Remplissage des NaN par 0 après un pivotement ou une transformation

    La méthode fillna(0) permet de remplir toutes les valeurs manquantes (NaN) par une valeur spécifique, ici 0.

    Le DataFrame df_filled est créé en remplaçant toutes les valeurs NaN par 0.

    df_filled = df.fillna(0)

    Le résultat est un DataFrame où toutes les valeurs manquantes ont été remplacées par des zéros.

    Affichage du DataFrame après remplissage

    La ligne print("\nDataFrame après fillna(0) :\n", df_filled) affiche le DataFrame après que toutes les valeurs manquantes aient été remplacées par 0.