使用Pandas DataFrame创建特定列的热向量

时间:2018-09-22 11:42:24

标签: python pandas one-hot-encoding

我有一个这样的数据框

   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方法,但是它只是给我一个onevector向量表示形式,而不是其中的数量。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用数据透视表

 install.packages("units", type = "binary")

出局:

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