将Pandas分组依据扩展到许多列

时间:2018-08-15 21:06:55

标签: python-3.x pandas group-by

我有一个这样的数据框,

创建数据框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

如何通过代码扩展我的小组以使他们排成一行。否则,现在,我的选择是按月分组,然后将分组的列附加到新的数据框中。 任何建议将不胜感激。

1 个答案:

答案 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