user id 和 product id 为非数字时如何获取 sparse.csr_matrix?

How to get sparse.csr_matrix when user id and product id are non numeric?

我正在尝试创建一个推荐系统,我需要为此创建一个稀疏矩阵。我正在尝试 sparse.csr_matrix 但问题是我的用户 ID 和产品 ID 是非数字的,例如 34f7653-2de。

我在将数据类型转换为分类后尝试使用以下代码。我也试过 sparse.coo_matrix

SUI = sparse.csr_matrix((train['item_count'].astype(float), (train['user_id'], train['item_id'])))

显示以下错误:

TypeError: Categorical is not ordered for operation max you can use .as_ordered() to change the Categorical to an ordered one

有什么办法可以做到非数字用户 ID 和产品 ID 吗?

我们需要将那些 non_numeric ID 转换为数字 ID。我们可以用下面的代码来做到这一点。

user_id = user_id.astype('category').cat.codes