Python 如何使用不同的groupby将多个聚合函数应用于同一列?
我正在建立一些关于熊猫的报告,我想包括与总体价值的比较 假设我们有:Python 如何使用不同的groupby将多个聚合函数应用于同一列?,python,python-3.x,pandas,Python,Python 3.x,Pandas,我正在建立一些关于熊猫的报告,我想包括与总体价值的比较 假设我们有: import pandas data = {'puppy_name': ['Stanley', 'Doggo', 'Stanley', 'Doggo','Stanley', 'Doggo', 'Stanley', 'Doggo'], 'treats_earned': [25, 15, 20, 30, 20, 25, 20, 35], 'month': ['feb', 'feb', 'feb', 'feb','mar', 'm
import pandas
data = {'puppy_name': ['Stanley', 'Doggo', 'Stanley', 'Doggo','Stanley', 'Doggo', 'Stanley', 'Doggo'],
'treats_earned': [25, 15, 20, 30, 20, 25, 20, 35],
'month': ['feb', 'feb', 'feb', 'feb','mar', 'mar', 'mar', 'mar']}
df = pandas.DataFrame(data)
我想做的是展示以下内容:
pup / month / pup_avg / overall_month_avg
Stanley | feb | 22.5 | 22.5
Doggo | feb | 20 | 22.5
Stanley | mar | 20 | 25
Doggo | mar | 27.5 | 25
因此,对于一个列,我们按照['month','pup']进行分组/表示,对于另一个列,我们按照['month']进行分组/表示。IIUC我们需要两次groupby和map
谢谢你-第一次,好久不见,谢谢!“有什么办法可以更好地解释我的问题吗?”juicero补充道
s=df.groupby(['puppy_name','month'])['treats_earned'].mean().reset_index()
s['overall_month_avg']=s['month'].map(df.groupby('month')['treats_earned'].mean())
s
Out[33]:
puppy_name month treats_earned overall_month_avg
0 Doggo feb 22.5 22.5
1 Doggo mar 30.0 25.0
2 Stanley feb 22.5 22.5
3 Stanley mar 20.0 25.0