Python 如何为大熊猫中同一类别的每个记录添加平均值?

Python 如何为大熊猫中同一类别的每个记录添加平均值?,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我有一个数据框架,我将使用它来训练一个模型,我希望添加一个新特性,以摆脱分类特性 我有一个列zip_reg,它是分类的,包含大约106个不同的值,我的数据集有大约150k个记录,另一方面,我有一个数字特征“数量”,我希望计算同一类的每个记录的平均值,下面是一个示例: zip_reg amount A 100 B 200 B 100 C 100 C 150 C 150

我有一个数据框架,我将使用它来训练一个模型,我希望添加一个新特性,以摆脱分类特性

我有一个列zip_reg,它是分类的,包含大约106个不同的值,我的数据集有大约150k个记录,另一方面,我有一个数字特征“数量”,我希望计算同一类的每个记录的平均值,下面是一个示例:

zip_reg     amount
A           100
B           200
B           100
C           100
C           150
C           150
对于A类,我们的平均值为100,对于B类,我们的平均值为(300/2=150),对于C类,我们的平均值为200,我希望添加一个新的列mean_amount,以显示同一类别中每个记录的平均值,即:

zip_reg     amount    mean_amount
A           100       100
B           200       150
B           100       150
C           100       200
C           150       200
C           150       200
我使用
groupby.mean()
来获取每个类的平均值,但是如何添加列,以便每个条目都能以优雅的方式计算其类的平均值,而不必编写整个函数

IIUC,您需要使用
mean

df['mean_amount'] = df.groupby('zip_reg')['amount'].transform('mean')

print (df)
  zip_reg  amount  mean_amount
0       A     100   100.000000
1       B     200   150.000000
2       B     100   150.000000
3       C     100   133.333333
4       C     150   133.333333
5       C     150   133.333333