我正在创建一个推荐系统,我的数据有一个专栏叫做“codeX”。codeX列包含2278 K、5567 H、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)
但我还是没能得到结果
我对蟒蛇完全陌生。有人能指导我怎样才能以所需的格式得到我的结果吗?
发布于 2019-07-17 14:30:46
df['numcode']= df['CodeX'].astype("category").cat.codes 与其重新格式化现有的列,为什么不创建一个新的列呢?这样您就可以保留原始值。另一个选项是创建一个字典,并将输出映射到字典值。
https://stackoverflow.com/questions/57078173
复制相似问题