Создайте горячий вектор определенных столбцов с пандой - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть такой фрейм данных

   user_id    Amount    Event
1       28        22       e1
2       32        16       e2
3       28        55       e2
4       33        18       e3
5       28        28       e1

Я ожидаю вывод как

   user_id    e1     e2    e3
1       28    50     55     0
2       32     0     16     0
3       33     0      0    18

Объяснение вывода:

Вместо имени события в столбце, онодолжен входить в название столбца с одним горячим векторным стилем.Вместо {0,1} в одном горячем векторе, сумма (если присутствует) должна прийти.Если у пользователя есть более одной записи для события, то должна прийти сумма суммы.

Я попытался добавить метод dataframe.get_dummies, но он просто дает мне однообразное векторное представление, но не сумму в нем.

Спасибо

1 Ответ

0 голосов
/ 22 сентября 2018

Вы можете использовать сводную таблицу

pd.pivot_table(df,values='Amount',index='user_id',columns='Event',aggfunc='sum').fillna(0)

Out:

   Event      e1       e2   e3
user_id         
28          50.0    55.0    0.0
32          0.0     16.0    0.0
33          0.0      0.0    18.0
...