Maison >développement back-end >Tutoriel Python >Comment remplir les valeurs DataFrame manquantes avec des moyens de groupe à l'aide de « transform » ?

Comment remplir les valeurs DataFrame manquantes avec des moyens de groupe à l'aide de « transform » ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-27 07:26:13205parcourir

How to Fill Missing DataFrame Values with Group Means Using `transform`?

Remplir les valeurs manquantes avec la moyenne de groupe à l'aide de Transform

Dans un DataFrame avec des valeurs manquantes, il est courant de les remplir avec une valeur significative. Une approche consiste à calculer la valeur moyenne pour chaque groupe.

Considérez le DataFrame suivant :

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']
})

L'objectif est de remplir toutes les valeurs « NaN » avec la valeur moyenne dans leurs « » respectifs. name" groups.

Pour y parvenir, nous pouvons utiliser la fonction de transformation en combinaison avec l'opération groupby. La fonction de transformation applique une transformation spécifiée à chaque groupe, tandis que l'opération groupby divise le DataFrame en groupes en fonction d'une colonne spécifique (dans ce cas, "nom").

Voici la solution :

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

La fonction fillna remplit les valeurs manquantes avec la valeur spécifiée (dans ce cas, la moyenne). La fonction lambda garantit que la moyenne est calculée pour chaque groupe avant le remplissage.

Le DataFrame résultant aura les valeurs manquantes remplies avec la valeur moyenne pour chaque groupe :

  name  value
0    A      1
1    A      1
2    B      2
3    B      2
4    B      3
5    B      1
6    C      3
7    C      3
8    C      3

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