Pandas : comment utiliser GroupBy & Trier au sein des groupes



Vous pouvez utiliser la syntaxe suivante pour regrouper les lignes dans un DataFrame pandas, puis trier les valeurs au sein des groupes :

df.sort_values(['var1','var2'],ascending=False).groupby('var1').head()

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : utiliser GroupBy et trier dans les groupes dans Pandas

Supposons que nous ayons le DataFrame pandas suivant qui montre les ventes réalisées dans deux magasins différents :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'store': ['B', 'B', 'A', 'A', 'B', 'B', 'A', 'A'],
                   'sales': [12, 25, 8, 14, 10, 20, 30, 30]})

#view DataFrame
print(df)

  store  sales
0     B     12
1     B     25
2     A      8
3     A     14
4     B     10
5     B     20
6     A     30
7     A     30

Nous pouvons utiliser la syntaxe suivante pour regrouper les lignes par colonne de magasin et trier par ordre décroissant en fonction de la colonne de ventes :

#group by store and sort by sales values in descending order
df.sort_values(['store','sales'],ascending=False).groupby('store').head()

	store	sales
1	B	25
5	B	20
0	B	12
4	B	10
6	A	30
7	A	30
3	A	14
2	A	8

Notez que nous pourrions également supprimer l’argument ascending=False pour trier les valeurs des ventes par ordre croissant :

#group by store and sort by sales values in ascending order
df.sort_values(['store','sales']).groupby('store').head()

	store	sales
2	A	8
3	A	14
6	A	30
7	A	30
4	B	10
0	B	12
5	B	20
1	B	25

Notez que la fonction head() affiche uniquement les 5 premières valeurs par groupe.

Pour afficher les n premières valeurs par groupe, utilisez simplement head(n) à la place.

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 *