我一直在尝试找出在应用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_group
与groups
一起使用
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/