[英]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.