use*_*057 0 group-by python-3.x pandas
我有这样的数据帧,
创建一个数据框 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)
Run Code Online (Sandbox Code Playgroud)
数据框:
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
Run Code Online (Sandbox Code Playgroud)
现在,我想groupby按月汇总,所以,我做了这个,
machine_group = data.groupby(['Machine ID','Machine'])['June'].sum().reset_index(name = 'June Sum')
Run Code Online (Sandbox Code Playgroud)
我得到以下,
Machine ID Machine June Sum
0 100 ABC 10
1 101 CDQ 27
Run Code Online (Sandbox Code Playgroud)
但是,我需要一个像这样的输出
Machine ID Machine June Sum July Sum August Sum
0 100 ABC 10 27 15
1 101 CDQ 27 32 31
Run Code Online (Sandbox Code Playgroud)
如何通过代码扩展我的组以使它们排成一行.否则,目前,我的选择是按月分组并将分组列附加到新数据框中.任何建议将不胜感激.
尝试:
machine_group = data.groupby(['Machine ID','Machine']).sum()\
.add_suffix(' Sum').reset_index()
Run Code Online (Sandbox Code Playgroud)
输出:
Machine ID Machine June Sum July Sum August Sum
0 100 ABC 10 27 15
1 101 CDQ 27 32 31
Run Code Online (Sandbox Code Playgroud)