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