python-3.x - 将对象(包含字符串和整数)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 矩阵的另一种方法是什么?
解决方案
您将拥有数字数据类型的编码字符串,使其变得稀疏。一种解决方案(可能不是最节省内存的)是制作一个networkx图,其中字符串单词将是节点,使用图的节点列表,您可以跟踪单词到数字的映射。
推荐阅读
- c# - 如何在 rdlc 报告中显示和设计列表列表
- c# - SharePoint CSOM 未在 ExecuteQuery 上引发预期异常
- json - 如何在 Flutter App 中使用 HTML 读取 JSON?
- .htaccess - 如何在 htaccess Xampp 中传递多个值
- python - 错误“强制转换为 Unicode:需要字符串或缓冲区,找到 cStringIO.StringO”当我尝试从 python 中的 url 插入 excel 图像时
- python - 是否有理由不总是使用leaky_relu
- c# - 有时方法在发布时没有在asp.net c#中执行
- java - Jackson 序列化 - 忽略未设置的值,但提供明确设置为 null 的值
- c++ - CMake 在 Windows 上的自定义位置上找不到 Boost
- sql - 当行不存在时插入表中,否则使用 Oracle SQL 更新表