Python 聚合后删除组标头
假设我有以下几点:Python 聚合后删除组标头,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,假设我有以下几点: In [20]: df.groupby("dummy").agg({"returns": [np.mean, np.sum]}) Out[20]: returns sum mean dummy 1 0.285833 0.028583 如何删除“退货”标题?这样我就有了一个包含“sum”列和“mean”列的数据框?使用- df.columns=df.c
In [20]: df.groupby("dummy").agg({"returns": [np.mean, np.sum]})
Out[20]:
returns
sum mean
dummy
1 0.285833 0.028583
如何删除“退货”标题?这样我就有了一个包含“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)
df.columns=df.columns.droplevel(0)
若要删除顶部列级别,您甚至不需要在分组后删除该级别,前提是可以避免首先创建该级别。在您感兴趣的栏目中调用
agg
:
result = df.groupby("dummy").agg({"returns": [np.mean, np.sum]})
result.columns = result.columns.get_level_values(1)
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
如果可以避免在第一时间创建级别,则甚至不需要在分组后删除该级别。在您感兴趣的栏目中调用
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