我有一个用户在多个会话中购买的商品的数据集,如下所示:
user session items quantity
1, 3, item5, 2
1, 3, item4, 1
1, 3, item2, 1
1, 3, item5, 2
1, 14, item2, 1
1, 14, item4, 1
2, 8, item1, 1
2, 8, item3, 1
2, 8, item4, 3
2, 9, item4, 3
我想将每个项目的频率放在一个数据框中为:
item1 item2 item3 item4 item5
user1 NaN 2 NaN 2 4
user2 1 NaN 1 6 NaN
我尝试将每个用户的项目分组并计数(使用字典,{item2: 2, item4: 2, item5: 2}
),但是(item5)的实际数量是4而不是2。
temp = set(sessions_bought_items)
dic ={}
for j in temp:
dic[j] = sessions_bought_items.count(j)
df = pd.DataFrame(dic,index = [user],columns = [dic_keys for dic_keys in dic.keys()])
我也尝试过pivot_table(values=quantity, index=user, columns=items)
,但是它采用(item4)3而不是6的重复值之一。
计算每个用户的最终商品数量时出现问题。