Remplissage des valeurs manquantes après une fusion (fillna())

Après une fusion de DataFrames, il peut y avoir des valeurs manquantes (NaN) si certaines correspondances n’ont pas été trouvées dans l’un des DataFrames. La méthode fillna() permet de remplir ces valeurs manquantes avec une valeur spécifique ou en utilisant une méthode d’interpolation ou de propagation. Vous pouvez spécifier une valeur à utiliser pour remplacer les NaN, par exemple une valeur numérique comme 0, une valeur de texte comme une chaîne vide, ou même utiliser des méthodes comme la propagation des valeurs voisines avec method=’ffill’ (pour remplir avec la valeur précédente) ou method=’bfill’ (pour remplir avec la valeur suivante). Cette opération est particulièrement utile pour s’assurer que le DataFrame final ne contient pas de valeurs manquantes après une fusion, ce qui peut rendre les analyses ou modèles plus robustes.

Fonctions :

  • df.fillna(valeur)

    Permet de remplacer les valeurs manquantes (NaN) dans un DataFrame ou une Series par une valeur donnée ou une méthode de remplissage. Après une fusion (merge, join), il est fréquent d’avoir des NaN là où les données ne se recoupent pas : fillna() permet de rendre le jeu de données exploitable.

    Importation :

    import pandas as pd

    Attributs :

    Paramètre Type Description Valeur par défaut
    value scalar, dict, Series, ou DataFrame Valeur(s) à utiliser pour remplir les NaN. Peut être une valeur unique ou des valeurs spécifiques par colonne. Obligatoire
    method {'ffill', 'bfill'} Méthode de propagation des valeurs : 'ffill' (remplit avec la valeur précédente), 'bfill' (avec la suivante). None
    axis {0, 1} Applique le remplissage sur les lignes (0) ou colonnes (1). None
    inplace bool Si True, modifie le DataFrame directement sans retour de copie. False
    limit int Nombre maximum de remplissages consécutifs à effectuer. None

    Exemple de code :

    import pandas as pd
    
    # Exemple de DataFrame après une fusion
    df = pd.DataFrame({
        'id': [1, 2, 3, 4],
        'nom': ['Alice', 'Bob', 'Charlie', None],
        'age': [25, None, 30, None]
    })
    
    # Remplacer les valeurs manquantes
    df_rempli = df.fillna({
        'nom': 'Inconnu',
        'age': df['age'].mean()
    })
    
    print(df_rempli)
    Résultat du code

    Explication du code :

    Importation de la bibliothèque

    import pandas as pd

    Cette ligne importe la bibliothèque pandas, qui permet de manipuler des structures de données en Python.

    Création d’un DataFrame avec des valeurs manquantes

    df = pd.DataFrame({'id': [1, 2, 3, 4], 'nom': ['Alice', 'Bob', 'Charlie', None], 'age': [25, None, 30, None]})

    On crée un DataFrame avec des valeurs manquantes dans les colonnes nom et age. Le None représente les valeurs manquantes.

    Remplissage des valeurs manquantes

    df_rempli = df.fillna({'nom': 'Inconnu', 'age': df['age'].mean()})

    La méthode fillna() remplace les valeurs manquantes dans les colonnes spécifiées. Ici, les valeurs manquantes dans la colonne nom sont remplacées par 'Inconnu', et celles dans age sont remplacées par la moyenne de la colonne age.

    Affichage du DataFrame après remplacement

    print(df_rempli)

    Cette ligne affiche le DataFrame après avoir remplacé les valeurs manquantes par les valeurs spécifiées.