我的数据如下:
pd.DataFrame({'id': [1,2,3], 'item': ['item_a', 'item_a', 'item_b'],
'score': [1,-1,1]})
id item score
1 item_a 1
2 item_a -1
3 item_b 1
我想为item列获取伪代码,但我想根据它们在score列中的值对它们进行评分。如果没有观察到,我要一个0插补。像这样:
id item_a item_b
1 1 0
2 -1 0
3 0 1
如您所见,我想捕获用户id 1喜欢项a,id 2不喜欢项a,并且用户3没有与项a交互。id列在每行中不是唯一的-例如,用户id 3可能喜欢项a,而这将记录为原始数据帧中的新行。你知道吗
我试过在pandas中使用get\ dummies,但是这种方法只计算“item”列中观察到的值的数量,没有考虑分数值。你知道吗
您可以使用set_index+unstack:
输出
如果您想精确匹配输出,只需添加以下行:
输出
你想要的是^{} :
相关问题 更多 >
编程相关推荐