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