首页 > 解决方案 > 将对象(包含字符串和整数)Pandas 数据帧转换为 scipy 稀疏矩阵

问题描述

我有一个包含两列的数据框,一列是 dtype 对象的药物名称,它包含药物名称,少数药物名称后跟其 mg(例如 Avil25 和 Avil50 的其他行),另一列是 dtype int 的价格。我正在尝试使用以下代码行将药物名称列转换为 scipy csr_matrix:

from scipy.sparse import csr_matrix

sparse_matrix = csr_matrix(medName)

我收到以下错误消息:

TypeError: no supported conversion for types: (dtype('O'),)

作为另一种方法,我尝试medName.str.replace('\d+', '')从数据框中删除整数 using() 并尝试sparse_matrix = csr_matrix(medName.astype(str)) 。我仍然遇到同样的错误。

这里出了什么问题?将此数据帧转换为 csr 矩阵的另一种方法是什么?

标签: python-3.xpandasscipysparse-matrix

解决方案


您将拥有数字数据类型的编码字符串,使其变得稀疏。一种解决方案(可能不是最节省内存的)是制作一个networkx图,其中字符串单词将是节点,使用图的节点列表,您可以跟踪单词到数字的映射。


推荐阅读