Comment trouver la valeur médiane par groupe chez les pandas
Vous pouvez utiliser la syntaxe de base suivante pour calculer la valeur médiane par groupe dans les pandas :
df.groupby(['group_variable'])['value_variable'].median().reset_index()
Vous pouvez également utiliser la syntaxe suivante pour calculer la valeur médiane, regroupée par plusieurs colonnes :
df.groupby(['group1', 'group2'])['value_variable'].median().reset_index()
Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.
Exemple 1 : Trouver la valeur médiane par un groupe
Supposons que nous ayons les DataFrames pandas suivants :
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], 'position': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'], 'points': [5, 7, 7, 9, 12, 9, 9, 4], 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame df team position points rebounds 0 A G 5 11 1 A G 7 8 2 A F 7 10 3 A F 9 6 4 B G 12 6 5 B G 9 5 6 B F 9 9 7 B F 4 12
On peut utiliser le code suivant pour trouver la valeur médiane de la colonne « points », regroupée par équipe :
#calculate median points by team
df.groupby(['team'])['points'].median().reset_index()
team points
0 A 7.0
1 B 9.0
À partir du résultat, nous pouvons voir :
- La médiane des points marqués par les joueurs de l’équipe A est de 7 .
- La médiane des points marqués par les joueurs de l’équipe B est de 9 .
Notez qu’on peut également trouver la valeur médiane de deux variables à la fois :
#calculate median points and median rebounds by team
df.groupby(['team'])[['points', 'rebounds']].median()
team points rebounds
0 A 7.0 9.0
1 B 9.0 7.5
Exemple 2 : Trouver la valeur médiane par plusieurs groupes
Le code suivant montre comment trouver la valeur médiane de la colonne « points », regroupée par équipe et par position :
#calculate median points by team
df.groupby(['team', 'position'])['points'].median().reset_index()
team position points
0 A F 8.0
1 A G 6.0
2 B F 6.5
3 B G 10.5
À partir du résultat, nous pouvons voir :
- La médiane des points marqués par les joueurs en position « F » dans l’équipe A est de 8 .
- La médiane des points marqués par les joueurs en position « G » de l’équipe A est de 6 .
- La médiane des points marqués par les joueurs en position « F » dans l’équipe B est de 6,5 .
- La médiane des points marqués par les joueurs en position « G » de l’équipe B est de 10,5 .
Ressources additionnelles
Les didacticiels suivants expliquent comment exécuter d’autres fonctions courantes dans les pandas :
Comment trouver la valeur maximale par groupe chez Pandas
Comment trouver la somme par groupe chez les pandas
Comment calculer les quantiles par groupe dans Pandas