熊猫用平均值替换列的值

弗里尚克·巴德瓦吉

我有一个熊猫数据框,想用它的平均值替换每个值。

    ID    X     Y
    1     a     1
    2     a     2
    3     a     3
    4     b     2
    5     b     4

如何为每个唯一的 X 用平均 Y 替换 Y 值?

    ID    X     Y
    1     a     2
    2     a     2
    3     a     2
    4     b     3
    5     b     3
耶斯列

使用transform

df['Y'] = df.groupby('X')['Y'].transform('mean')
print (df)
   ID  X  Y
0   1  a  2
1   2  a  2
2   3  a  2
3   4  b  3
4   5  b  3

对于另一个新柱DataFrame使用map具有drop_duplicates

df1 = pd.DataFrame({'X':['a','a','b']})
print (df1)
   X
0  a
1  a
2  b

df1['Y'] = df1['X'].map(df.drop_duplicates('X').set_index('X')['Y'])
print (df1)
   X  Y
0  a  2
1  a  2
2  b  3

另一种解决方案:

df1['Y'] = df1['X'].map(df.groupby('X')['Y'].mean())
print (df1)
   X  Y
0  a  2
1  a  2
2  b  3

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章