Создание вычисляемого столбца и добавление его в датафрейм - PullRequest
2 голосов
/ 28 апреля 2019

Мой набор данных (называемый «поезд») касается заявок на ипотеку. Чтобы улучшить мой прогноз «принято» (0/1), я пытаюсь рассчитать «коэффициент приемлемости кредитора» и хотел бы добавить этот новый столбец в мой набор данных.

Набор данных состоит из 500 тыс. Строк, идентификатор кредитора варьируется от 0 до 6508, но фактически не все идентификаторы (целые числа) между ними существуют.

Я пробовал:

Способ 1: Создание сводной таблицы. Это работает:

train.pivot_table(index=['lender'], aggfunc='mean', values=['accepted'])

НО: кажется, я не могу добавить результаты этой сводной таблицы в мой набор данных:

  • Не напрямую, в одной строке кода.

  • Не косвенно, путем добавления результатов этой сводной таблицы в пустой фрейм данных, а затем слияния с 'on = lender_id'.

Метод 2: Создание нового столбца с функцией groupby. Я использовал это:

train['lender_ar'] = train.groupby('lender').transform('mean')

, но получаю:

ValueError: Wrong number of items passed 21, placement implies 1

Немного из моего набора данных:


lender  accepted
4536       1
2458       0
5710       1
5888       1
289        1

Я надеюсь, что кто-то может помочь! Спасибо!

1 Ответ

0 голосов
/ 28 апреля 2019

Я бы попытался использовать df.join в качестве исходного набора данных, и средние значения не будут иметь одинаковые размеры.

train.join(train.groupby('lender').mean(), on='lender')
...