如何解决熊猫融化了,没有给出想要的输出ValueError:以10为底的int的无效文字:'198 | 260 | 157 | 136 | 136'
我正在实施在Medium中找到的推荐系统示例。
在数据准备中,它具有这种“交易”结构,熊猫可以读取csv:
print(transactions.shape)
transactions.head()
输出是这样的:
(62483,2)
customerId products
0 0 20
1 1 2|2|23|68|68|111|29|86|107|152
2 2 111|107|29|11|11|11|33|23
3 3 164|227
4 5 2|2
需要将其拆分为“数据”结构,看起来像这样:
帖子中执行此操作的代码为:
data = pd.melt(transactions.set_index('customerId')['products'].apply(pd.Series).reset_index(),id_vars=['customerId'],value_name='products') \
.dropna().drop(['variable'],axis=1) \
.groupby(['customerId','products']) \
.agg({'products': 'count'}) \
.rename(columns={'products': 'purchase_count'}) \
.reset_index() \
.rename(columns={'products': 'productId'})
data['productId'] = data['productId'].astype(np.int64)
但是,当我运行它时,输出给我这个错误“ ValueError:int()的无效文字,基数为10:'198 | 260 | 157 | 136 | 136'”,因为它没有将' productId”列。
我得到这样的东西:
(61282,3)
customerId productId purchase_count
0 0 198|260|157|136|136 1
1 0 19|19|19 1
2 0 1|1|31|31 1
3 0 20 1
4 0 216|52|260|93|93|93 1
有什么想法吗?
解决方法
对于那些面临相同问题的人,在使用omel函数之前,已使用以下代码对其进行了解决:
div
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。