为agg编写pandas group的多个列名称

时间:2019-03-04 17:45:18

标签: python pandas

我想以熊猫为一组,并计算多个不同列的总和和平均值。下面是一个示例。

 grouped =df.groupby(['id']).agg({
                    'column1': ['sum','avg'],
                    'column2': ['sum','avg'],
                    'column3': ['sum','avg'],
                    'column4': ['sum','avg']
                    ....                  
                    'column8': ['sum','avg'] })

如何避免写每个列名称。有没有一种方法可以将所有列与某种类型的函数结合使用,所以我只能写一次['sum','avg']吗?

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

df[cols_list].groupby(['id']).agg([np.mean, np.std])

cols_list是您感兴趣的列加上您的id的列表,因此在您的示例中它仍然可以分组:['id','column1',...,'column8']