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 :

    1. DataFrame d'origine :

      On peut observer des valeurs manquantes (NaN) dans les colonnes janvier, février et mars.

      1. Après fillna(0) :
        • Les valeurs manquantes (NaN) sont remplacées par 0.

    Remarques pratiques

    • Pivotement avec NaN :
      Après un pivotement, il peut arriver que certaines combinaisons de valeurs dans les colonnes index, columns et values n'existent pas dans les données sources, ce qui entraîne des valeurs manquantes (NaN). Le remplissage de ces valeurs avec fillna() permet de les normaliser.

    • Utilisation de 0 :
      Utiliser 0 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.