我有一个如下数据框:
rowid user_id col_2 bias
0 1 0 2.1
1 2 2 2.5
2 3 3 3.6
3 1 0 2.8
4 2 2 1.5
5 3 3 3.2
现在我想让'偏见' column是相应user_id的平均值,就像一个唯一的user_id:
rowid user_id col_2 bias
0 1 0 2.1
3 1 0 2.8
为:
rowid user_id col_2 bias
0 1 0 2.45
3 1 0 2.45
答案 0 :(得分:0)
使用groupby.transform
:
df['bias'] = df.bias.groupby(df.user_id).transform('mean')
df
# rowid user_id col_2 bias
#0 0 1 0 2.45
#1 1 2 2 2.00
#2 2 3 3 3.40
#3 3 1 0 2.45
#4 4 2 2 2.00
#5 5 3 3 3.40