Maison > développement back-end > Tutoriel Python > Comment puis-je obtenir efficacement les meilleurs enregistrements de chaque groupe dans un DataFrame Pandas ?

Comment puis-je obtenir efficacement les meilleurs enregistrements de chaque groupe dans un DataFrame Pandas ?

Barbara Streisand
Libérer: 2024-11-25 18:03:10
original
725 Les gens l'ont consulté

How Can I Efficiently Get the Top Records from Each Group in a Pandas DataFrame?

Pandas : obtenir efficacement les enregistrements les plus importants au sein des groupes

Lorsque vous travaillez avec Pandas DataFrames, il est souvent nécessaire d'extraire les principaux enregistrements de chaque groupe . Une approche courante consiste à utiliser les fonctions « groupby » et « apply » pour énumérer les enregistrements au sein de chaque groupe.

dfN = df.groupby('id').apply(lambda x:x['value'].reset_index()).reset_index()
Copier après la connexion

Cependant, il existe une approche plus rationalisée :

df.groupby('id').head(2)
Copier après la connexion

Cette La méthode récupère directement les enregistrements les plus élevés sans avoir besoin de calculs intermédiaires. De plus, le DataFrame généré conserve son index d'origine.

Pour aplatir le MultiIndex résultant, utilisez :

df.groupby('id').head(2).reset_index(drop=True)
Copier après la connexion

Cela produira le DataFrame suivant :

id value
1 1
1 2
2 1
2 2
3 1
4 1

Alternativement , vous pouvez utiliser la fonction de fenêtre "row_number()" de SQL pour énumérer efficacement les enregistrements au sein des groupes. Cette fonctionnalité, cependant, n'est actuellement pas disponible dans Pandas.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal