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