将 scipy 稀疏 csr 转换为 pandas?

2023-12-31

我已经用过

sklearn.preprocessing.OneHotEncoder

转换一些数据的输出是scipy.sparse.csr.csr_matrix如何将它与其他列一起合并回原始数据框?

我尝试使用pd.concat但我得到

TypeError: cannot concatenate a non-NDFrame object

Thanks


If A is csr_matrix, 您可以使用.toarray() http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.sparse.csr_matrix.toarray.html#scipy.sparse.csr_matrix.toarray(还有.todense()产生一个numpy matrix,这也适用于DataFrame构造函数):

df = pd.DataFrame(A.toarray())

然后你可以使用它pd.concat().

A = csr_matrix([[1, 0, 2], [0, 3, 0]])
    
  (0, 0)    1
  (0, 2)    2
  (1, 1)    3

<class 'scipy.sparse.csr.csr_matrix'>

pd.DataFrame(A.todense())

   0  1  2
0  1  0  2
1  0  3  0

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2 entries, 0 to 1
Data columns (total 3 columns):
0    2 non-null int64
1    2 non-null int64
2    2 non-null int64

在0.20版本中,pandas介绍稀疏数据结构 https://pandas.pydata.org/pandas-docs/stable/sparse.html#sparse-data-structures, 包括SparseDataFrame https://pandas.pydata.org/pandas-docs/stable/sparse.html#sparsedataframe.

在熊猫1.0中,SparseDataFrame was removed https://pandas.pydata.org/pandas-docs/stable/user_guide/sparse.html#migrating:

在旧版本的 pandas 中,SparseSeries and SparseDataFrame类是处理稀疏数据的首选方式。随着扩展数组的出现,不再需要这些子类。通过使用具有稀疏值的常规 Series 或 DataFrame 可以更好地满足其目的。

The 移民 https://pandas.pydata.org/pandas-docs/stable/user_guide/sparse.html#migrating指南展示了如何使用这些新的数据结构。

例如,要创建一个DataFrame从稀疏矩阵:

from scipy.sparse import csr_matrix

A = csr_matrix([[1, 0, 2], [0, 3, 0]])

df = pd.DataFrame.sparse.from_spmatrix(A, columns=['A', 'B', 'C'])

df

   A  B  C
0  1  0  2
1  0  3  0

df.dtypes
A    Sparse[float64, 0]
B    Sparse[float64, 0]
C    Sparse[float64, 0]
dtype: object

或者,您可以将稀疏矩阵传递给sklearn以避免转换回时内存不足pandas。只需通过传递一个参数将其他数据转换为稀疏格式numpy array to the scipy.sparse.csr_matrix构造函数和使用scipy.sparse.hstack合并(参见docs https://docs.scipy.org/doc/scipy/reference/sparse.html).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 scipy 稀疏 csr 转换为 pandas? 的相关文章

随机推荐

  • 无法在 ubuntu 20.04 中安装 g++ 和 build-essentials

    即使在清洁后apt get clean它说有破损的包裹 sudo dpkg l grep r正如 1 中提到的 什么也不返回 sudo apt get install build essential Reading package list
  • MySQL配置不当原因:相对路径的不安全使用

    我正在使用 Django 当我运行时python manage py runserver我收到以下错误 ImproperlyConfigured Error loading MySQLdb module dlopen Library Pyt
  • 使用 Jasypt 和 PBKDF2WithHmacSHA1 密钥进行基于密码的 AES 加密

    我正在工作中实现加密机制 安全人员的要求如下 使用 PBKDF2WithHmacSHA512 秘密密码 256 位盐和最少 20000 次迭代创建 256 位密钥 盐应该使用 SecureRandom getInstance SHA1PRN
  • Java 接口是否可以定义为只有 Enum 可以扩展它?

    我想这样做并没有什么特别的原因 我只是想知道这是否可能 如果有帮助的话 这是一个可以使用它的虚构情况 想象一下一种类型Enum它用作只读数据源 这样每个值Enum包含不同的内容 这Enum实施Readable 现在 假设我们想要一个读取所有
  • 如何处理持久的 http 请求

    我有一个持久的http请求 后端有大量计算 目前 这一切都是同步的 而服务器计算机 浏览器看不到输出 结果 一段时间后 连接断开 浏览器中显示超时错误 我想立即向浏览器返回一些信息 并让它等待结果 如何实现这一目标 请注意 Java 后端是
  • 多个具有相同名称的单选按钮组

    我已经继承了一个动态创建 HTML 的复杂应用程序 问题是 前面的人不知道单选按钮的 名称 属性实际上是组关联 通过以下标记 有什么方法可以将它们分为两组 div div
  • 列出 .gitignore 不忽略的所有文件

    我想列出 gitignore 未忽略的所有文件 即我的存储库的所有源文件 ag默认情况下效果很好 但我不知道有一种方法可以在不安装其他软件的情况下工作 git ls files没有选项几乎可以很好地工作 但没有考虑已修改 创建的文件 例如
  • 如何安装 NODE_MODULE_VERSION 46

    如何使用 NODE MODULE VERSION 46 安装 Node js 版本 我一直遇到 NODE MODULE VERSION 不匹配的情况 并且重新编译没有帮助 因此切换节点版本可能会更容易 基本上 我一直遇到这样的情况 Warn
  • ini_set('max_execution_time', 0) 是一个坏主意吗?

    有没有充分的理由不设置 PHP 配置变量max execution time http www php net manual en info configuration php ini max execution time to 0 一位同
  • 禁用 Wifi 时未收到 NSD 设备丢失消息

    我已经使用编写了一个示例应用程序NSD正如所解释的here http developer android com training connect devices wirelessly nsd html 该应用程序工作正常 它会发现服务 解
  • 如何创建使用 Gradle 构建的 Kotlin 项目?

    我正在尝试创建一个新的 Kotlin 项目 该项目使用 IntelliJ IDEA Ubuntu 16 04 上的 2016 2 5 通过 Gradle 构建 当我这样做时 我立即收到一条错误消息 这就是我正在尝试的 从欢迎屏幕中选择 创建
  • 在 NET 6.0 中使用 HttpClient 的最佳实践

    我正在为下一个任务寻找最佳实践解决方案 我使用 ASP NET Core 6 0 我创建了一个可与公共 API 配合使用的 SDK SDK通过Http请求与API进行通信 我用HttpClient类来发出http请求 我的目标是构建一个 N
  • 电子邮件 SMTP 验证器

    我需要发送数百封新闻通讯 但想首先检查服务器上是否存在电子邮件 它被称为SMTP http en wikipedia org wiki Simple Mail Transfer Protocol验证 至少我是这样认为的 基于我在互联网上的研
  • 更新事物列表而不触及每个条目

    我在数据库中有一个用户应该能够订购的列表 itemname order value int salad 1 mango 2 orange 3 apples 4 从数据库加载时 我简单地order by order value 通过拖放 他应
  • 从数据框列名称中删除后缀

    我试图从数据框中的所有列中删除后缀 但收到错误消息 任何建议 将不胜感激 df pd DataFrame np random randint 0 10 size 10 4 columns list ABCD df add suffix x
  • 具有动态 ID 的骨干视图

    我刚刚意识到我误解了el的属性Backbone View 基本上我的观点需要动态id基于其模型属性的属性 我认为我可以正常工作 因为我只是在模板中指定了它 然而 我意识到 Backbone 实际上所做的是将这个编译后的模板放入另一个元素中
  • 无法让 jquery.jqgrid 4.4.1 在 ASP.NET MVC 中工作

    我一直在努力让 jquery jqgrid 4 4 1 在我的 ASP NET MVC 4 解决方案中工作 我使用 NuGet 将 jquery jqgrid 4 4 1 安装到我的项目中 我试图在我的页面中插入一个非常简单的网格 只是为了
  • 如果我写了 system.out.println(); 则找不到包系统;

    我正在写一个简单的程序 class Demo public static void main String args system out println Hello 编译时它给出了error package system not foun
  • 如何将 xarray 数据集展平为一维 numpy 数组?

    有没有一种简单的方法可以将 xarray 数据集展平为单个一维 numpy 数组 例如 展平以下测试数据集 xr Dataset a xr DataArray data 10 11 12 13 14 coords x 0 1 2 3 4 d
  • 将 scipy 稀疏 csr 转换为 pandas?

    我已经用过 sklearn preprocessing OneHotEncoder 转换一些数据的输出是scipy sparse csr csr matrix如何将它与其他列一起合并回原始数据框 我尝试使用pd concat但我得到 Typ