Maison >développement back-end >Tutoriel Python >Comment imputer les valeurs manquantes chez les pandas à l'aide de moyens de groupe ?
Imputation NaN avec moyenne de groupe chez les pandas
Remplir les valeurs manquantes en utilisant la moyenne au sein de chaque groupe est une tâche courante lorsque l'on travaille avec des données tabulaires. Considérons le DataFrame suivant avec des valeurs manquantes :
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']})
Notre objectif est d'imputer les valeurs manquantes avec la moyenne de chaque groupe en fonction de la colonne « nom ».
Pour y parvenir, nous peut utiliser les fonctions groupby() et transform() dans Pandas :
grouped = df.groupby('name').mean() df["value"] = df.groupby("name").transform(lambda x: x.fillna(x.mean()))
La fonction groupby() crée des groupes basés sur la colonne 'name' et Mean() calcule la valeur moyenne pour chaque groupe. La fonction transform() applique cette valeur moyenne à chaque ligne de chaque groupe et remplit les valeurs manquantes.
Le DataFrame résultant :
print(df) 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
Explication :
Solution alternative :
Une autre approche de l'imputation des valeurs manquantes basée sur un groupe est :
impute_cols = ['value'] df[impute_cols] = df[impute_cols].fillna(df.groupby('name')[impute_cols].transform('mean'))
Les deux méthodes obtiennent le même résultat, mais cette dernière approche offre plus de flexibilité lors de l'imputation de plusieurs colonnes.
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!