Maison >développement back-end >Tutoriel Python >Comment remplir les valeurs manquantes dans les pandas avec la moyenne du groupe ?

Comment remplir les valeurs manquantes dans les pandas avec la moyenne du groupe ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-11 12:58:11481parcourir

How to Fill Missing Values in Pandas with the Group Mean?

Remplir les valeurs manquantes par moyenne dans chaque groupe chez Pandas

Dans ce contexte, votre objectif est de remplir les valeurs manquantes ("NaN" ) avec la valeur moyenne de chaque groupe distinct dans la colonne "nom". Pour y parvenir, vous pouvez utiliser la fonction de transformation de Pandas en conjonction avec la méthode fillna.

Considérons l'exemple de DataFrame fourni :

df = pd.DataFrame({
    'value': [1, np.nan, np.nan, 2, 3, 1, 3, np.nan, 3],
    'name': ['A','A', 'B','B','B','B', 'C','C','C']
})

# Original DataFrame
print(df)

Pour calculer la valeur moyenne dans chaque "nom" group, vous pouvez utiliser la fonction groupby :

grouped = df.groupby('name').mean()

Cependant, grouped est un DataFrame contenant les valeurs moyennes, et nous devons le réappliquer au DataFrame d'origine pour remplir les valeurs manquantes. C'est là que la transformation devient utile :

df["value"] = df.groupby("name").transform(lambda x: x.fillna(x.mean()))

Voici une répartition du code :

  • df.groupby("name") regroupe le DataFrame par la colonne "name".
  • lambda x : x.fillna(x.mean()) définit une fonction anonyme qui prend chaque groupe (représenté par x) en entrée et effectue l'opération suivante :

    • Il remplit les valeurs manquantes ("NaN") avec la valeur moyenne calculée à l'aide de x.mean().
  • df["value"] remplace la colonne "value" dans le DataFrame d'origine par les valeurs transformées qui remplissent les valeurs manquantes.

Après en exécutant le code, le DataFrame résultant contiendra les valeurs renseignées comme souhaité :

# Adjusted DataFrame
print(df)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn