我有一个这样的数据框,
创建数据框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
如何通过代码扩展我的小组以使他们排成一行。否则,现在,我的选择是按月分组,然后将分组的列附加到新的数据框中。 任何建议将不胜感激。
答案 0 :(得分:5)
尝试:
machine_group = data.groupby(['Machine ID','Machine']).sum()\
.add_suffix(' Sum').reset_index()
输出:
Machine ID Machine June Sum July Sum August Sum
0 100 ABC 10 27 15
1 101 CDQ 27 32 31