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()
Cependant, il existe une approche plus rationalisée :
df.groupby('id').head(2)
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)
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!