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