如何对每个列使用apply()函数及其相应的平均值?

时间:2017-10-31 14:27:58

标签: python pandas dataframe

我有一个如下数据框:

  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

1 个答案:

答案 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