Maison >développement back-end >Tutoriel Python >Comment trier les résultats au sein des groupes à l'aide de GroupBy et de l'agrégation dans Pandas ?

Comment trier les résultats au sein des groupes à l'aide de GroupBy et de l'agrégation dans Pandas ?

DDD
DDDoriginal
2024-10-20 17:22:31429parcourir

How to Sort Results within Groups Using GroupBy and Aggregation in Pandas?

regroupement des pandas et tri au sein des groupes

Vouloir trier les résultats d'une agrégation groupby est une tâche courante. Dans cet exemple, nous avons un DataFrame avec deux colonnes, 'job' et 'source', et une colonne 'count' que nous voulons regrouper et trier.

Pour ce faire, nous pouvons utiliser le groupby () pour regrouper le DataFrame par les colonnes 'job' et 'source'. Nous pouvons ensuite utiliser la méthode agg() pour agréger la colonne 'count', dans ce cas en utilisant la fonction sum.

In [168]: df.groupby(['job','source']).agg({'count':sum})

Out[168]:
               count
job    source       
market A           5
       B           3
       C           2
       D           4
       E           1
sales  A           2
       B           4
       C           6
       D           3
       E           7

Cela nous donnera un nouveau DataFrame avec les résultats groupés. Nous pouvons ensuite utiliser la méthode sort_values() pour trier la colonne 'count' par ordre décroissant au sein de chacun des groupes.

In [34]: df.sort_values(['job','count'],ascending=False).groupby('job').head(3)

Out[35]: 
   count     job source
4      7   sales      E
2      6   sales      C
1      4   sales      B
5      5  market      A
8      4  market      D
6      3  market      B

Cela nous donnera un nouveau DataFrame avec les 3 meilleurs résultats pour chaque groupe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn