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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *