使用 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
我有一个这样的数据框
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