Pandas : Comment calculer le mode dans un objet GroupBy
Vous pouvez utiliser la syntaxe suivante pour calculer le mode dans un objet GroupBy dans pandas :
df.groupby(['group_var'])['value_var'].agg(pd.Series.mode)
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : Mode Calculer dans un objet GroupBy
Supposons que nous ayons le DataFrame pandas suivant qui montre les points marqués par les basketteurs de différentes équipes :
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'],
'points': [10, 10, 12, 15, 19, 23, 20, 20, 26]})
#view DataFrame
print(df)
team points
0 A 10
1 A 10
2 A 12
3 A 15
4 B 19
5 B 23
6 C 20
7 C 20
8 C 26
Nous pouvons utiliser la syntaxe suivante pour calculer la valeur des points de mode pour chaque équipe :
#calculate mode points value for each team
df.groupby(['team'])['points'].agg(pd.Series.mode)
team
A 10
B [19, 23]
C 20
Name: points, dtype: object
Voici comment interpréter le résultat :
- La valeur des points de mode pour l’équipe A est de 10 .
- Les valeurs de points de mode pour l’équipe B sont 19 et 23 .
- La valeur des points de mode pour l’équipe C est de 20 .
Si un groupe possède plusieurs modes, vous pouvez utiliser la syntaxe suivante pour afficher chaque mode sur une ligne différente :
#calculate mode points value for each team
df.groupby(['team'])['points'].apply(pd.Series.mode)
team
A 0 10
B 0 19
1 23
C 0 20
Name: points, dtype: int64
Remarque : Vous pouvez trouver la documentation complète de l’opération GroupBy dans pandas ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Pandas : comment calculer la somme cumulée par groupe
Pandas : comment compter les valeurs uniques par groupe
Pandas : comment calculer la corrélation par groupe