Matrix 当用户id和产品id为非数字时,如何获取sparse.csr_矩阵?

Matrix 当用户id和产品id为非数字时,如何获取sparse.csr_矩阵?,matrix,sparse-matrix,csr,Matrix,Sparse Matrix,Csr,我试图创建一个推荐系统,我需要创建一个稀疏矩阵。我正在尝试使用sparse.csr_矩阵,但问题是我的用户id和产品id是非数字的,例如34f7653-2de 在将数据类型转换为Category之后,我正在尝试使用以下代码。我也尝试过使用sparse.coo_矩阵 SUI = sparse.csr_matrix((train['item_count'].astype(float), (train['user_id'], train['item_id']))) 显示以下错误: TypeError

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

在将数据类型转换为Category之后,我正在尝试使用以下代码。我也尝试过使用sparse.coo_矩阵

SUI = sparse.csr_matrix((train['item_count'].astype(float), (train['user_id'], train['item_id'])))
显示以下错误:

TypeError:没有为您可以使用的最大操作排序Category .as_ordered()将类别更改为有序


是否有任何方法可以实现非数字用户id和产品id?

我们需要将这些非数字id转换为数字id。我们可以使用以下代码实现这一点

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

我们需要将这些非数字id转换为数字id。我们可以用下面的代码来实现

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