从 Pandas DataFrame 中提取数组(列名、数据)

2024-01-23

这是我在 Stack Overflow 上的第一个问题。

我有一个像这样的 Pandas 数据框。

        a   b   c   d
one     0   1   2   3
two     4   5   6   7
three   8   9   0   1
four    2   1   1   5
five    1   1   8   9

我想提取数据为 1 的列名和数据对,并且每个索引在数组中都是单独的。

[ [(b,1.0)], [(d,1.0)], [(b,1.0),(c,1.0)], [(a,1.0),(b,1.0)] ]

我想使用python库的gensim,它需要语料库作为这种形式。

有什么聪明的方法可以做到这一点或从 pandas 数据应用 gensim 吗?


许多 gensim 函数接受 numpy 数组,所以可能有更好的方法......

In [11]: is_one = np.where(df == 1)

In [12]: is_one
Out[12]: (array([0, 2, 3, 3, 4, 4]), array([1, 3, 1, 2, 0, 1]))

In [13]: df.index[is_one[0]], df.columns[is_one[1]]
Out[13]:
(Index([u'one', u'three', u'four', u'four', u'five', u'five'], dtype='object'),
 Index([u'b', u'd', u'b', u'c', u'a', u'b'], dtype='object'))

要对每一行进行分组,您可以使用 iterrows:

from itertools import repeat

In [21]: [list(zip(df.columns[np.where(row == 1)], repeat(1.0)))
          for label, row in df.iterrows()
          if 1 in row.values]  # if you don't want empty [] for rows without 1
Out[21]:
[[('b', 1.0)],
 [('d', 1.0)],
 [('b', 1.0), ('c', 1.0)],
 [('a', 1.0), ('b', 1.0)]]

在Python 2中list不是必需的,因为 zip 返回一个列表。

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

从 Pandas DataFrame 中提取数组(列名、数据) 的相关文章

随机推荐

  • 设置STS但在web应用程序中保留formsauthentication

    我正在现有的网络应用程序上启用 Windows 身份基础 我希望尽可能少地干扰现有代码 因此我希望登录页面使用应用程序中留下的表单验证 并且如果用户通过特定页面 例如 im comming from some other site aspx
  • 使用 CDK 创建自定义 AWS IAM 策略

    根据文档 https docs aws amazon com cdk api latest docs aws cdk aws iam Policy html https docs aws amazon com cdk api latest
  • 验证 C 程序的输入

    我有一个 C 程序 其中接受 2 个数字作为输入 如何验证输入的内容是否仅为数字而不是字符 void main int a b printf Enter two numbers scanf d d a b printf Number 1 i
  • 将 IronPython 嵌入到我的 C# 应用程序中的最佳方式是什么?

    我有一个由非常精通技术的人使用的应用程序 他们想要可编程性的小岛 所以我使用了嵌入式 Iron Python 然而 自 IronPython 2 0 Eval 起不再起作用 具体来说 我无法同时加载模块和注入局部变量 有一个解决办法 我仍然
  • 如何查询Win32_PerfFormattedData_Tcpip_NetworkInterface中的特定适配器?

    如何查询特定适配器 最好基于 IP 地址 Win32 PerfFormattedData Tcpip NetworkInterface 我花了一段时间谷歌搜索这个问题 但没有找到解决方案 我尝试使用Win32 NetworkAdapter
  • 如何在Python程序中处理操作系统信号?

    我正在编写一个 python 程序 它通过无限 while 循环从队列中读取数据 我如何处理操作系统 键盘中断 CTRL C 发送的信号以打破 while 循环并关闭活动连接和文件并优雅地退出程序而不是终止进程 while True rea
  • SQLSTATE[HY093]:参数号无效:参数未定义

    我使用 Yii 的活动记录模式已经有一段时间了 现在 我的项目需要访问不同的数据库来进行一项小事务 我认为 Yii 的 DAO 对此很有帮助 但是 我遇到了一个神秘的错误 CDbCommand 执行 SQL 语句失败 SQLSTATE HY
  • 使用翻转过渡更改 leftBarButtonItem?

    在我的代码中 我以编程方式将带有 UIButton 的 leftBarButtonItem 更改为 UIActivityIndi catorView 我想知道如何在更改时执行翻转过渡 有什么想法吗 多谢 嗯 我有一种感觉 要做翻转过渡 你需
  • 实例化派生类时是否隐式调用抽象类构造函数?

    举个例子 abstract class Base function construct echo Base construct br class Child extends Base function construct echo Chil
  • Android - 谷歌地图路由

    我已将 Google 地图功能添加到我的应用程序中 现在我问您 有什么办法 如何添加此 mapView 路由功能 我将从 GPS 获取坐标 如起点 和目的地坐标 我想画出到达终点的路线 是否可以 Thanks Hmyzak 看到 Max G
  • 我可以混合使用 Argument Captor 和常规匹配器吗?

    我需要在 Mockito 中验证具有多个参数的方法 但只需要捕获一个参数 其他参数我只需要一个简单的匹配器 那可能吗 例如 如果我有 Mock private Map
  • 在python中生成一定范围内的N个正整数,加起来等于总和

    我看过其他帖子解决类似的问题 我知道如何生成 N 个正整数 我还知道如何限制随机生成的整数的总和 唯一的问题是满足 N 个值都不超出指定范围的条件 e g generate ints n total low high 应该生成 n 个值数组
  • Shiny R:textInput 的条件样式

    我想改变一些颜色textInput labels 基于从selectInput输出 这个想法是根据交互式文本的另一个选择来显示新的数据 文本本身 我已经设法 updateTextInput 我想为他们的标签做类似的事情 因为并非所有text
  • 在 macOS mojave 上安装 angular/cli 时出错 - node-pre-gyp

    我格式化了 imac 并删除了 HD 上的所有文件 但是 当我安装 Angular cli 7 时 终端控制台显示此错误日志 环境 macOS 莫哈韦沙漠 10 14 2 节点 v10 15 npm 6 4 1 控制台错误 miguels
  • 如何对 HTTPS Node.js 服务器使用自签名证书?

    我已经开始为 API 编写一个包装器 该 API 要求所有请求都通过 HTTPS 进行 我不想在开发和测试实际 API 时向其发出请求 而是想在本地运行自己的服务器来模拟响应 我对如何生成创建 HTTPS 服务器并向其发送请求所需的证书感到
  • 如何在 Kotlin Native 中导入 Java 包

    我正在尝试导入 Java 包以在 Kotlin 本机中使用 如下所示 main kt import java util fun main args Array
  • 通过我的 LAN 接口通过 C# 发送电子邮件

    我正在尝试模拟一些自组织网络 我使用无线卡连接到自组织网络 当我从该自组织网络获得一些触发时 我希望能够向自己发送一些特定的消息 我的笔记本电脑通过 LAN 接口连接到互联网 并通过无线卡连接到 ad hoc 网络 这是我的代码 priva
  • iPhone 中的 UILabel 文本问题

    我有一个标签 其中包含动态字符串数据 例如 我是 Mohit 我只想将 am 以粗体显示 在 iphone 中可能吗 如果是 请给我建议 提前致谢 不 标准 UILabel 中不能有不同样式的文本 你可能需要使用的是NSAttributed
  • Dagger 2 如何使用子组件将一个类注入多个组件?

    请提供示例代码来使用子组件实现此场景 在 MyActivity 中 我需要满足多个组件的依赖关系 正如您在下面的代码中看到的 我的活动需要来自compA via module classA and compB via module clas
  • 从 Pandas DataFrame 中提取数组(列名、数据)

    这是我在 Stack Overflow 上的第一个问题 我有一个像这样的 Pandas 数据框 a b c d one 0 1 2 3 two 4 5 6 7 three 8 9 0 1 four 2 1 1 5 five 1 1 8 9