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

Ajouter un commentaire

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