Pandas : comment utiliser Groupby avec plusieurs agrégations
Vous pouvez utiliser la syntaxe de base suivante pour utiliser un groupby avec plusieurs agrégations dans les pandas :
df.groupby('team').agg( mean_points=('points', np.mean), sum_points=('points', np.sum), std_points=('points', np.std))
Cette formule particulière regroupe les lignes du DataFrame par la variable appelée team puis calcule plusieurs statistiques récapitulatives pour la variable appelée points .
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : utilisation de Groupby avec plusieurs agrégations dans Pandas
Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur divers joueurs de basket-ball :
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['Mavs', 'Mavs', 'Mavs', 'Heat', 'Heat', 'Heat'], 'points': [18, 22, 19, 14, 14, 11], 'assists': [5, 7, 7, 9, 12, 9]}) #view DataFrame print(df) team points assists 0 Mavs 18 5 1 Mavs 22 7 2 Mavs 19 7 3 Heat 14 9 4 Heat 14 12 5 Heat 11 9
Nous pouvons utiliser la syntaxe suivante pour regrouper les lignes du DataFrame par équipe , puis calculer la moyenne, la somme et l’écart type des points pour chaque équipe :
import numpy as np #group by team and calculate mean, sum, and standard deviation of points df.groupby('team').agg( mean_points=('points', np.mean), sum_points=('points', np.sum), std_points=('points', np.std)) mean_points sum_points std_points team Heat 13.000000 39 1.732051 Mavs 19.666667 59 2.081666
Le résultat affiche la moyenne, la somme et l’écart type de la variable de points pour chaque équipe .
Vous pouvez utiliser une syntaxe similaire pour effectuer un groupby et calculer autant d’agrégations que vous le souhaitez.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes chez les pandas :
Comment compter les valeurs uniques à l’aide de Pandas GroupBy
Comment appliquer une fonction à Pandas Groupby
Comment créer un tracé à barres à partir de Pandas GroupBy