Pandas : Comment utiliser GroupBy et les décomptes de valeurs



Vous pouvez utiliser la syntaxe de base suivante pour compter la fréquence des valeurs uniques par groupe dans un DataFrame pandas :

df.groupby(['column1', 'column2']).size().unstack(fill_value=0)

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : utiliser GroupBy et Value Counts dans Pandas

Supposons que nous ayons le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   'position':['G', 'G', 'F', 'F', 'C', 'G', 'F', 'F', 'F', 'F'],
                   'points': [8, 8, 10, 10, 11, 8, 9, 10, 10, 10]})

#view DataFrame
print(df)

  team position  points
0    A        G       8
1    A        G       8
2    A        F      10
3    A        F      10
4    A        C      11
5    B        G       8
6    B        F       9
7    B        F      10
8    B        F      10
9    B        F      10

Nous pouvons utiliser la syntaxe suivante pour compter la fréquence des valeurs de points , regroupées par colonnes d’ équipe et de position :

#count frequency of points values, grouped by team and position
df.groupby(['team', 'position', 'points']).size().unstack(fill_value=0)

	points	8	9	10	11
team	position				
A	C	0	0	0	1
        F	0	0	2	0
        G	2	0	0	0
B	F	0	1	3	0
        G	1	0	0	0

Voici comment interpréter le résultat :

  • La valeur 8 est apparue 0 fois dans la colonne des points pour les joueurs de l’équipe A et de la position C.
  • La valeur 9 est apparue 0 fois dans la colonne des points pour les joueurs de l’équipe A et de la position C.
  • La valeur 10 est apparue 0 fois dans la colonne des points pour les joueurs de l’équipe A et de la position C.
  • La valeur 11 est apparue dans la colonne des points 1 fois pour les joueurs de l’équipe A et de la position C.

Et ainsi de suite.

On pourrait également utiliser la syntaxe suivante pour compter la fréquence des postes , regroupés par équipe :

#count frequency of positions, grouped by team
df.groupby(['team', 'position']).size().unstack(fill_value=0)

position	C	F	G
team			
A	        1	2	2
B	        0	4	1

Voici comment interpréter le résultat :

  • La valeur ‘C’ s’est produite 1 fois sur l’équipe A.
  • La valeur ‘F’ est apparue 2 fois sur l’équipe A.
  • La valeur ‘G’ est apparue 2 fois sur l’équipe A.
  • La valeur ‘C’ s’est produite 0 fois sur l’équipe B.
  • La valeur ‘F’ s’est produite 4 fois sur l’équipe B.
  • La valeur ‘G’ s’est produite 1 fois sur l’équipe B.

Et ainsi de suite.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :

Comment effectuer une somme GroupBy dans Pandas
Comment compter les valeurs uniques à l’aide de GroupBy dans Pandas
Comment utiliser Groupby et Plot dans Pandas

Ajouter un commentaire

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