Как добавить новый вычисляемый столбец в фрейм данных, используя python

Это может быть вопрос новичка, однако, я потратил пару часов, чтобы понять, как это сделать. Хорошо, у меня есть фрейм данных с 150 переменными и целью. образец как ниже:

train
Out[1]: 
        var1  var2    target
0          A      C      10.5   
1          A      D      13.5          
2          B      D      2.5     

Я хотел бы создать новый фрейм данных с добавленным столбцом, который имеет среднее значение цели. например, строка1 из var1_new должна иметь среднее значение цели, где var1 ==A, то есть 12 ((10,5+13,5)/2)

Я не могу понять это в Python. Любая помощь будет оценена.

train_new
Out[2]: 
          var1   var2  target    var1_new   var2_new   
0          A      C      10.5       12       10.5             
1          A      D      13.5       12        8       
2          B      D      2.5        2.5       8      

1 ответ

Решение
variables = ['var1', 'var2']
for var in variables:
    df[var + "_new"] = None

for var in variables:
    for k, v in df.groupby(var).mean()['target'].iteritems():
        df.loc[df[var] == k, var + "_new"] = v
Другие вопросы по тегам