Agrégation groupe par avec plusieurs regroupements et moyenne
Dans Pandas, effectuer des agrégations sur des données regroupées par plusieurs niveaux est une opération courante. Considérez le DataFrame suivant :
cluster org time 1 a 8 1 a 6 2 h 34 1 c 23 2 d 74 3 w 6
Une tâche courante consiste à calculer la moyenne d'une colonne donnée, telle que « temps », par groupe défini par plusieurs variables, telles que « cluster » et « org ».
Solution 1 : Moyenne sur les regroupements de clusters uniquement
Pour calculer la moyenne du "temps" regroupé par "cluster" uniquement, vous pouvez utiliser le code suivant :
df.groupby(['cluster']).mean()
Résultat :
time cluster 1 12.333333 2 54.000000 3 6.000000
Solution 2 : Moyenne sur une combinaison de regroupements
Si vous souhaitez calculer la moyenne du « temps » pour chaque combinaison de « cluster » et « org », vous pouvez utiliser :
df.groupby(['cluster', 'org']).mean()
Résultat :
time cluster org 1 a 438886 c 23 2 d 9874 h 34 3 w 6
Solution 3 : Moyenne imbriquée sur les groupements
Pour effectuer une moyenne imbriquée, en faisant d'abord la moyenne sur la combinaison "cluster" et "org", puis en faisant la moyenne sur les groupes "cluster", utilisez :
(df.groupby(['cluster', 'org'], as_index=False).mean() .groupby('cluster')['time'].mean())
Résultat :
cluster mean(time) 1 15 #=((8 + 6) / 2 + 23) / 2 2 54 #=(74 + 34) / 2 3 6
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!