首页 > 后端开发 > Python教程 > 如何高效地获取 Pandas DataFrame 中每组的前几条记录?

如何高效地获取 Pandas DataFrame 中每组的前几条记录?

Barbara Streisand
发布: 2024-11-25 18:03:10
原创
737 人浏览过

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

Pandas:高效获取组内最靠前的记录

使用 Pandas DataFrame 时,经常需要从每个组中提取前导记录。常见的方法是利用 'groupby' 和 'apply' 函数来枚举每个组内的记录。

dfN = df.groupby('id').apply(lambda x:x['value'].reset_index()).reset_index()
登录后复制

但是,存在一种更简化的方法:

df.groupby('id').head(2)
登录后复制

这方法直接获取最上面的记录,无需中间计算。此外,生成的 DataFrame 保留其原始索引。

要展平生成的 MultiIndex,请使用:

df.groupby('id').head(2).reset_index(drop=True)
登录后复制

这将生成以下 DataFrame:

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

或者,您可以使用 SQL 的“row_number()”窗口函数来高效地枚举组内的记录。然而,此功能目前在 Pandas 中不可用。

以上是如何高效地获取 Pandas DataFrame 中每组的前几条记录?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板