我一直试图弄清楚在申请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实际上并未命名该列)
你可以用get_group与groups
g=df.groupby(['col1','col2'])
g.get_group((list(g.groups)[0])).groupby(['col3','col4'])['col5'].sum()
Run Code Online (Sandbox Code Playgroud)
gb = df.groupby(['col1', 'col2', 'col3', 'col4'])['col5'].sum()
gb.loc[[gb.index.levels[0][0]]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1403 次 |
| 最近记录: |