我使用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()
....
我错过了一些简单而美好的东西吗?
答案 0 :(得分:5)
Ami Tavory的回答是一个很好的方法,但是如果你想要一个不需要创建新列并且之后删除它们的解决方案,你可以做类似的事情:
df.groupby([True]*len(df)).agg(aggs_dict)
答案 1 :(得分:4)
您还可以使用函数直接分组:
df.groupby(lambda x: True).agg(aggs_dict)
答案 2 :(得分:3)