[英]Removing group header after pandas aggregation
Suppose I have the following: 假设我有以下内容:
In [20]: df.groupby("dummy").agg({"returns": [np.mean, np.sum]})
Out[20]:
returns
sum mean
dummy
1 0.285833 0.028583
How do I remove the "returns" header? 如何删除“ returns”标题? So that I have a dataframe with columns 'sum' and 'mean'? 这样我有一个数据框,列为“ sum”和“ mean”?
You don't even to remove the level after grouping if you can avoid creating it in the first place. 如果可以避免一开始就创建该关卡,甚至在分组后都不会删除它。 Call agg
on your column of interest - 在您感兴趣的列上调用agg
df.groupby("dummy")['returns'].agg(['mean', 'sum'])
Demo 演示版
df = pd.DataFrame({'dummy':[1, 1, 2, 2], 'returns' : [50, 50, 100, 200]})
df
dummy returns
0 1 50
1 1 50
2 2 100
3 2 200
df.groupby("dummy")['returns'].agg(['mean', 'sum'])
mean sum
dummy
1 50 100
2 150 300
Alternatively, using numpy's functions - 或者,使用numpy的函数-
df.groupby("dummy")['returns'].agg([np.mean, np.sum])
mean sum
dummy
1 50 100
2 150 300
Use - 采用 -
df.columns = df.columns.droplevel(0) df.columns = df.columns.droplevel(0)
To drop the top column level 降低顶层栏位
result = df.groupby("dummy").agg({"returns": [np.mean, np.sum]})
result.columns = result.columns.get_level_values(1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.