如何获得多列groupby中的第一个组?

Han*_*ana 2 pandas

我一直试图弄清楚在申请groupby之后如何可以只返回第一个小组。

我的代码如下所示:

gb = df.groupby(['col1', 'col2', 'col3', 'col4'])['col5'].sum()
Run Code Online (Sandbox Code Playgroud)

我想要的是第一组输出。我一直在尝试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
Run Code Online (Sandbox Code Playgroud)

我要退货的只是这样:

col1  col2  col3   col4  'sum'
 1     34   green   10    0.0
            yellow  30    1.5 
            orange  20    1.1 
Run Code Online (Sandbox Code Playgroud)

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

WeN*_*Ben 5

你可以用get_groupgroups

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

g.get_group((list(g.groups)[0])).groupby(['col3','col4'])['col5'].sum()
Run Code Online (Sandbox Code Playgroud)


piR*_*red 5

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

gb.loc[[gb.index.levels[0][0]]])
Run Code Online (Sandbox Code Playgroud)