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

Ajouter un commentaire

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