pandas - 如何获取多列groupby中的第一个组?

标签 pandas pandas-groupby

我一直在尝试找出在应用groupby之后如何只返回第一个组。

我的代码如下所示:

gb = df.groupby(['col1', 'col2', 'col3', 'col4'])['col5'].sum()

我想要的是第一组输出。我一直在尝试get_group方法,但它一直失败(也许是因为我正在按多列分组?)

这是我的输出示例:
col1  col2  col3   col4  'sum'
 1     34   green   10    0.0
            yellow  30    1.5 
            orange  20    1.1 
 2     89   green   10    3.0 
            yellow   5    0.0 
            orange  10    1.0

我想要退货的是这样的:
col1  col2  col3   col4  'sum'
 1     34   green   10    0.0
            yellow  30    1.5 
            orange  20    1.1 

(请注意,我刚刚在此处添加的“求和”列是为了清楚说明最后一列是什么,但pandas实际上并未为该列命名)

最佳答案

您可以将get_groupgroups一起使用

g=df.groupby(['col1','col2'])

g.get_group((list(g.groups)[0])).groupby(['col3','col4'])['col5'].sum()

关于pandas - 如何获取多列groupby中的第一个组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49799731/

相关文章:

python - 标准化 pandas groupby 结果

python - 我在 groupby 上应用了 sum() ,我想对最后一列的值进行排序

python - 使用 Pandas 进行数据分组

python - 将字典附加到数据框中,其中字典键与某些 df 行值匹配

python - 根据条件 python pandas 向数据帧添加新行

python - 用上一个/下一个值 +- 100 填充 Na 的列

python - 在 Pandas 中合并数据帧并忽略重复索引(有选择地)

python - 根据标签的多数计数过滤数据框中的重叠行

python - 当行可以属于多个组时,对 pandas Series 或 DataFrame 的行进行分组

python - 使用 Pandas 计算头对头统计数据