【发布时间】:2019-07-17 14:23:18
【问题描述】:
我正在创建一个推荐系统,我的数据的其中一列是“codeX”。 codeX 列包含 2278K、5567H、56738P 等形式的产品代码。为了创建稀疏矩阵,我将 codeX 列转换为数字代码。 这是我用来转换的代码
`df['CodeX'] = df['CodeX'].astype("category")
df['product_id']= df['StockCode'].cat.codes
现在经过所有其他相关计算并拟合模型后,我得到了一组用户的推荐,如下所示:
结果中的每一行代表每个用户的推荐项目列表
recommendation =
array([[2733, 3145, 1019, 402, 2043],
[2733, 886, 402, 797, 763],
[1648, 2128, 3216, 797, 1934],
...,
[2903, 1842, 1648, 1841, 1449],
[1370, 2621, 672, 2440, 2517],
[ 218, 2705, 809, 1813, 3087]], dtype=int32)
但我希望我的结果包含其原始代码
array([[837Y, 73489U, ...],
[2837B, 82381W, ...],
...,
[2563Y,27487P, ...]])
我尝试使用查找,以便将值映射到其原始形式
product_lookup= train_df[['product_id','CodeX']].drop_duplicates()
product_lookup['product_id']= product_lookup.product_id.astype(str)
但我仍然无法得到结果
我对 python 完全陌生。有人可以指导我如何获得所需格式的结果。
【问题讨论】:
-
你能给我们更多关于你想要的格式的信息吗?
2278k之类的是什么意思? -
@ZacharyOldham
2278K等是产品代码,数据是分类的,我将其转换为数字代码。现在我希望结果恢复为原始形式(分类)