所有功能的熊猫组?

时间:2016-09-07 08:34:55

标签: python pandas group-by

我使用pandas groupby+agg功能生成漂亮的报告

aggs_dict = {'a':['mean', 'std'], 'b': 'size'}
df.groupby('year').agg(aggs_dict)

我想在整个数据框架中使用相同的aggs_dict作为一个单独的组,没有多年的划分,例如:

df.groupall().agg(aggs_dict)

或:

df.agg(aggs_dict)

但无法找到任何优雅的方法。请注意,在我的真实代码中aggs_dict非常复杂,所以它很麻烦:

df.a.mean()
df.a.std()
df.b.size()
....
我错过了一些简单而美好的东西吗?

3 个答案:

答案 0 :(得分:5)

Ami Tavory的回答是一个很好的方法,但是如果你想要一个不需要创建新列并且之后删除它们的解决方案,你可以做类似的事情:

df.groupby([True]*len(df)).agg(aggs_dict) 

答案 1 :(得分:4)

您还可以使用函数直接分组:

 df.groupby(lambda x: True).agg(aggs_dict)

答案 2 :(得分:3)

您可以添加虚拟列:

df['dummy'] = 1

然后groupby + agg:

df.groupby('dummy').agg(aggs_dict)

然后delete it当你完成时。