Pandas : Comment utiliser Group By avec la condition Where
Le moyen le plus simple d’utiliser group by avec une condition Where dans les pandas est d’utiliser la fonction query() :
df.query("team == 'A'").groupby(["position"])["points"].mean().reset_index()
Cet exemple particulier calcule la valeur moyenne des points , regroupés par position , où l’équipe est égale à « A » dans certains DataFrame pandas.
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : Comment utiliser Group By avec la condition Where 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': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B'], 'position': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'F'], 'points': [22, 14, 15, 10, 8, 29, 33, 18]}) #view DataFrame print(df) team position points 0 A G 22 1 A G 14 2 A F 15 3 A F 10 4 A F 8 5 B G 29 6 B G 33 7 B F 18
Nous pouvons utiliser le code suivant pour calculer la valeur moyenne des points , regroupés par position , où l’équipe est égale à « A » :
#calculate mean value of points, grouped by position, where team == 'A' df.query("team == 'A'").groupby(["position"])["points"].mean().reset_index() position points 0 F 11.0 1 G 18.0
À partir du résultat, nous pouvons voir :
- La valeur moyenne des points pour les joueurs en position « F » de l’équipe A est de 11 .
- La valeur moyenne des points pour les joueurs en position « G » de l’équipe A est de 18 .
Notez que nous pouvons également utiliser l’opérateur & dans la fonction query() pour rechercher des lignes où plusieurs conditions sont remplies.
Par exemple, le code suivant montre comment calculer la valeur moyenne des points , regroupés par position , où l’équipe est égale à « A » et la position est égale à « G » :
#calculate mean value of points by position where team is 'A' and position is 'G' df.query("team=='A' & position=='G'").groupby(["position"])["points"].mean().reset_index() position points 0 G 18.0
D’après le résultat, nous pouvons voir que la valeur moyenne des points pour les joueurs en position « G » dans l’équipe A est de 18 .
Puisque nous avons spécifié deux conditions dans la fonction query() , seules les lignes qui remplissaient les deux conditions ont été utilisées.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Comment effectuer une somme GroupBy dans Pandas
Comment utiliser Groupby et Plot dans Pandas
Comment compter les valeurs uniques à l’aide de GroupBy dans Pandas