首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将更改为数字代码的范畴变量转换回原来的形式

将更改为数字代码的范畴变量转换回原来的形式
EN

Stack Overflow用户
提问于 2019-07-17 14:23:18
回答 1查看 68关注 0票数 1

我正在创建一个推荐系统,我的数据有一个专栏叫做“codeX”。codeX列包含2278 K、5567 H、56738P等形式的乘积码,用于创建稀疏矩阵,并将codeX列转换为数值代码。这是我用来转换的代码。

代码语言:javascript
复制
`df['CodeX'] = df['CodeX'].astype("category")
 df['product_id']= df['StockCode'].cat.codes

现在,在所有其他相关计算和模型拟合之后,我得到了一组用户的建议如下:

结果中的每一行表示每个用户的推荐项列表。

代码语言:javascript
复制
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)

但是我想要我的结果包含它的原始代码

代码语言:javascript
复制
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)

但我还是没能得到结果

我对蟒蛇完全陌生。有人能指导我怎样才能以所需的格式得到我的结果吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-17 14:30:46

代码语言:javascript
复制
df['numcode']= df['CodeX'].astype("category").cat.codes    

与其重新格式化现有的列,为什么不创建一个新的列呢?这样您就可以保留原始值。另一个选项是创建一个字典,并将输出映射到字典值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57078173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档