获取 Pandas 组内的最高记录
在以下数据集中:
df = pd.DataFrame({'id':[1,1,1,2,2,2,2,3,4], 'value':[1,2,3,1,2,3,4,1,1]})
我们希望获得每个 id 的前两条记录。一种简单的方法是使用 groupby 方法在每个组内分配行号:
dfN = df.groupby('id').apply(lambda x:x['value'].reset_index()).reset_index()
但是,head 函数提供了更有效的解决方案:
df.groupby('id').head(2)
此操作会产生:
id value id 1 0 1 1 1 1 2 2 3 2 1 4 2 2 3 7 3 1 4 8 4 1
要删除 MultiIndex 并展平结果,使用:
df.groupby('id').head(2).reset_index(drop=True)
这会产生所需的输出:
id value 0 1 1 1 1 2 2 2 1 3 2 2 4 3 1 5 4 1
因此,head 函数提供了一种简洁且优化的方法来检索每个 Pandas 组中最上面的记录。
以上是如何高效获取每个Pandas Group内的前N条记录?的详细内容。更多信息请关注PHP中文网其他相关文章!