【发布时间】:2018-08-15 21:06:55
【问题描述】:
我有一个这样的数据框,
创建数据框data
d = {'Machine ID': [100, 100, 101, 101], 'Machine': ["ABC", "ABC", "CDQ", "CDQ"],
"June": [10,0,12,15], "July": [12,15,0,32], "August": [0,15,20,11]}
data = pd.DataFrame(data=d)
数据框:
Machine ID Machine June July August
0 100 ABC 10 12 0
1 100 ABC 0 15 15
2 101 CDQ 12 0 20
3 101 CDQ 15 32 11
现在,我想groupby 并按月汇总,所以,我这样做了,
machine_group = data.groupby(['Machine ID','Machine'])['June'].sum().reset_index(name = 'June Sum')
我得到以下信息,
Machine ID Machine June Sum
0 100 ABC 10
1 101 CDQ 27
但是,我需要这样的输出
Machine ID Machine June Sum July Sum August Sum
0 100 ABC 10 27 15
1 101 CDQ 27 32 31
如何通过代码扩展我的组以使它们排列整齐。否则,就目前而言,我的选择是按月分组并将分组列附加到新的数据框中。 任何建议将不胜感激。
【问题讨论】:
-
您正在分组,然后仅在其中一个系列上执行
.sum(通过使用['June']切片)。您可以将其应用于所有系列,但只需在 groupby 之后执行.sum()。如果您需要对不同的列执行不同的操作,那么您应该查看groupby.agg
标签: python-3.x pandas group-by