使用 pandas 数据框创建特定列的热向量

Create a hot vector of specific columns with pandas dataframe

我有一个这样的数据框

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

谢谢

您可以使用数据透视表 table

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

输出:

   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