Как добавить новый вычисляемый столбец в фрейм данных, используя 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