将值替换为平均值

问题描述

我有一个数据帧,如下所示:

         Col1        Price
1      Plastic        50
2        Metal        100
3      Plastic        40

我想用它们在Price中的平均值替换col1中的值,因此我得到:

         Col1       Price
1         45         50
2        100        100
3         45         40

我已经这样做了:

df.groupby('Col1').mean()['Price']

但是我不知道如何替换这些值,也许可以使用map?


解决方案

您是对的-map可以这样做:

df['Col1'] = df['Col1'].map(df.groupby('Col1')['Price'].mean())
df
   Col1  Price
1    45     50
2   100    100
3    45     40

相关文章