繁体   English   中英

熊猫,groupby.agg返回给定的列名

[英]pandas, groupby.agg to return with a given column name

目前,我知道

df.groupby('A')['B'].agg({'total' : np.sum})

因此,聚合列的列名称为total 但是最近我收到警告

FutureWarning: using a dict on a Series for aggregation is deprecated and will be removed in a future version

那么,现在首选的方法是什么?

我认为您需要rename或在reset_index定义name参数:

重命名时,还要使用字典检查groupby agg的使用

1。

df = df.groupby('A')['B'].sum().reset_index(name='total')

2。

df = df.groupby('A', as_index=False)['B'].sum().rename(columns={'B':'total'})

3。

df = df.groupby('A').agg({'B' : 'sum'}).rename(columns={'B':'total'}).reset_index()

这是一些方法

In [57]: df.groupby('A')['B'].sum().to_frame('total')
Out[57]:
   total
A
a      2
b      1

In [58]: df.groupby('A')['B'].agg(np.sum).to_frame('total')   # or agg('sum')
Out[58]:
   total
A
a      2
b      1

In [59]: df.groupby('A').agg({'B': np.sum}).rename(columns={'B': 'total'})
Out[59]:
   total
A
a      2
b      1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM