【发布时间】:2018-02-26 14:00:58
【问题描述】:
我想使用 pandas groupby 功能,但不影响列名。例如:
我的原始数据框:
df = DataFrame({'int_col' : [1,2,6,8,-1],\
'float_col' : [0.1, 0.2,0.2,10.1,None], \
'str_col' : ['a','b',None,'c','a']})
结果:
float_col int_col str_col
0 0.1 1 a
1 0.2 2 b
2 0.2 6 None
3 10.1 8 c
4 NaN -1 a
现在我应用 groupby 函数:
f = {'int_col':['max'],'float_col':['sum']}
df_groupby = df.groupby('str_col', as_index=False,group_keys=False).agg(f)
这导致了新的数据框:
str_col int_col float_col
max sum
0 a 1 0.1
1 b 2 0.2
2 c 8 10.1
在 df_groupby 数据框中,列名获得了新的层次。我想压制这个
谢谢
【问题讨论】:
-
随便
df.groupby('str_col', as_index=False).agg({'int_col':'max','float_col':'sum'})?
标签: python pandas aggregate-functions pandas-groupby