pandas 聚合后删除组 header
Removing group header after pandas aggregation
假设我有以下内容:
In [20]: df.groupby("dummy").agg({"returns": [np.mean, np.sum]})
Out[20]:
returns
sum mean
dummy
1 0.285833 0.028583
如何删除 "returns" header?这样我就有了一个包含列 'sum' 和 'mean'?
的数据框
使用-
df.columns = df.columns.droplevel(0)
降低顶部列级别
result = df.groupby("dummy").agg({"returns": [np.mean, np.sum]})
result.columns = result.columns.get_level_values(1)
如果一开始就可以避免创建关卡,您甚至不必在分组后删除关卡。在您感兴趣的栏目上致电 agg
-
df.groupby("dummy")['returns'].agg(['mean', 'sum'])
演示
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
或者,使用 numpy 的函数 -
df.groupby("dummy")['returns'].agg([np.mean, np.sum])
mean sum
dummy
1 50 100
2 150 300
假设我有以下内容:
In [20]: df.groupby("dummy").agg({"returns": [np.mean, np.sum]})
Out[20]:
returns
sum mean
dummy
1 0.285833 0.028583
如何删除 "returns" header?这样我就有了一个包含列 'sum' 和 'mean'?
的数据框使用-
df.columns = df.columns.droplevel(0)
降低顶部列级别
result = df.groupby("dummy").agg({"returns": [np.mean, np.sum]})
result.columns = result.columns.get_level_values(1)
如果一开始就可以避免创建关卡,您甚至不必在分组后删除关卡。在您感兴趣的栏目上致电 agg
-
df.groupby("dummy")['returns'].agg(['mean', 'sum'])
演示
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
或者,使用 numpy 的函数 -
df.groupby("dummy")['returns'].agg([np.mean, np.sum])
mean sum
dummy
1 50 100
2 150 300