Pandas 列表列,为每个列表元素创建一行

2023-12-12

我有一个数据框,其中一些单元格包含多个值的列表。而不是存储多个 单元格中的值,我想扩展数据框,以便列表中的每个项目都有自己的行(在所有其他列中具有相同的值)。所以如果我有:

import pandas as pd
import numpy as np

df = pd.DataFrame(
    {'trial_num': [1, 2, 3, 1, 2, 3],
     'subject': [1, 1, 1, 2, 2, 2],
     'samples': [list(np.random.randn(3).round(2)) for i in range(6)]
    }
)

df
Out[10]: 
                 samples  subject  trial_num
0    [0.57, -0.83, 1.44]        1          1
1    [-0.01, 1.13, 0.36]        1          2
2   [1.18, -1.46, -0.94]        1          3
3  [-0.08, -4.22, -2.05]        2          1
4     [0.72, 0.79, 0.53]        2          2
5    [0.4, -0.32, -0.13]        2          3

如何转换为长格式,例如:

   subject  trial_num  sample  sample_num
0        1          1    0.57           0
1        1          1   -0.83           1
2        1          1    1.44           2
3        1          2   -0.01           0
4        1          2    1.13           1
5        1          2    0.36           2
6        1          3    1.18           0
# etc.

索引不重要,设置现有的就可以了 列作为索引,最终排序不是 重要的。


熊猫 >= 0.25

Series 和 DataFrame 方法定义了.explode()将列表分解为单独的行的方法。请参阅文档部分分解类似列表的列.

df = pd.DataFrame({
    'var1': [['a', 'b', 'c'], ['d', 'e',], [], np.nan], 
    'var2': [1, 2, 3, 4]
})
df
        var1  var2
0  [a, b, c]     1
1     [d, e]     2
2         []     3
3        NaN     4

df.explode('var1')

  var1  var2
0    a     1
0    b     1
0    c     1
1    d     2
1    e     2
2  NaN     3  # empty list converted to NaN
3  NaN     4  # NaN entry preserved as-is

# to reset the index to be monotonically increasing...
df.explode('var1').reset_index(drop=True)

  var1  var2
0    a     1
1    b     1
2    c     1
3    d     2
4    e     2
5  NaN     3
6  NaN     4

请注意,这还可以适当处理列表和标量的混合列,以及空列表和 NaN(这是repeat基于解决方案)。

但是,您应该注意的是explode仅适用于单列(目前)。

P.S.:如果你想爆炸一列strings,您需要先在分隔符上拆分,然后使用explode。看到这个(非常喜欢)我的相关回答。

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

Pandas 列表列,为每个列表元素创建一行 的相关文章

  • 如何在 Python 2.4 CSV 阅读器中禁用引用?

    我正在编写一个 Python 实用程序 需要解析一个我无法控制的大型且定期更新的 CSV 文件 该实用程序必须在仅提供 Python 2 4 的服务器上运行 CSV 文件根本不引用字段值 但Python 2 4版本的csv库 http ww
  • python中嵌套字典值的总和

    我有一本这样的字典 data 11L a 2 b 1 a 2 b 3 22L a 3 b 2 a 2 b 5 a 4 b 2 a 1 b 5 a 1 b 0 33L a 1 b 2 a 3 b 5 a 5 b 2 a 1 b 3 a 1 b
  • 将数字转换为整数列表[重复]

    这个问题在这里已经有答案了 我该如何写magic下面的函数 gt gt gt num 123 gt gt gt lst magic num gt gt gt gt gt gt print lst type lst 1 2 3
  • 使用 Matplotlib 的范围绘制图像的 3D 轮廓

    正如我所介绍的here https stackoverflow com questions 18792624 fits image input to a range in plot python 在二维中 我想知道如何 缩放 要绘制到绘图中
  • 使用pip安装pylibmc时出错

    您好 当我尝试使用 pip 在 OSX Lion 上安装 pylibmc 时 出现以下错误 pylibmcmodule h 42 10 fatal error libmemcached memcached h file not found
  • 使用 Python 将阿拉伯语或任何从右到左书写系统的字符串打印到 Linux 终端

    非常简单的例子是 city print city 我期望输出是 但实际上输出是相反的字符串 字母看起来有点不同 因为它们有开始 中间和结束形式 我无法将其粘贴到此处 因为复制粘贴会再次更正字符串的顺序 如何在 Linux 终端上正确打印阿拉
  • 使用 NumPy 的 Mittag-Leffler 函数的不稳定性

    在尝试重现时Wolfram MathWorld 上的情节 http mathworld wolfram com Mittag LefflerFunction html 并试图帮助这个问题 https stackoverflow com qu
  • self.__dict__.update(**kwargs) 的风格是好是坏?

    在 Python 中 假设我有一些类 Circle 它继承自 Shape Shape 需要 x 和 y 坐标 此外 Circle 需要半径 我希望能够通过执行类似的操作来初始化 Circle c Circle x 1 y 5 r 3 Cir
  • Pygooglevoice登录错误

    另一个人问了这个问题 但没有回复 所以我再问一遍 我正在尝试使用 pygooglevoice API 但是当我运行 SMS py 示例脚本时 它给了我一个登录错误 我已经安装了 Enthought python 我想也许我还需要安装其他东西
  • 使用 argparse 指定默认文件名,但不使用 --help 打开它们?

    假设我有一个对文件执行一些操作的脚本 它在命令行上获取此文件的名称 但如果未提供 则默认为已知文件名 content txt 说 与蟒蛇的argparse 我使用以下内容 parser argparse ArgumentParser des
  • 如何从 Python 3.5 降级到 3.4

    我想安装 kivy 链接在这里 https kivy org docs installation installation windows html install win dist 用于项目 但是 当尝试使用 pip 安装它所依赖的包时
  • 自适应支付 API 错误 580001

    我正在 python 中向 paypal 自适应支付 API 发出 PAY 请求 并收到通用错误 id 580001 没有其他信息 headers API credentials for the API caller business ac
  • 进行异步调用时,“yield”在龙卷风中如何工作?

    最近我在学习龙卷风简介 我遇到了以下代码 class IndexHandler tornado web RequestHandler tornado web asynchronous tornado gen engine def get s
  • 在 python 中使用 subprocess.call 时如何将 stdout 重定向到文件?

    我正在从另一个 python 脚本 A 调用一个 python 脚本 B 使用 subprocess call 如何将 B 的标准输出重定向到指定的文件 我正在使用 python 2 6 1 传递一个文件作为stdout参数为subproc
  • 如何打印和显示子进程 stdout 和 stderr 输出而不失真?

    也许有人可以帮助我解决这个问题 我在 SO 上看到了许多与此类似的问题 但没有一个问题同时处理标准输出和标准错误 也没有处理像我这样的情况 因此出现了这个新问题 我有一个 python 函数 它打开一个子进程 等待它完成 然后输出返回代码以
  • 如何连接多个字符串? [复制]

    这个问题在这里已经有答案了 如何将 stringList 中的所有字符串合并为一个而不打印它 例如 s joinStrings very hot day returns string print s Veryhotday 感觉有点倒退 但是
  • 如何使用 PyAudio 选择特定的输入设备

    通过 PyAudio 录制音频时 如何指定要使用的确切输入设备 我的电脑有两个麦克风 一个内置 一个通过 USB 我想使用 USB 麦克风进行录音 这流类 https people csail mit edu hubert pyaudio
  • python 相当于 sed

    有没有一种方法 无需双循环即可完成以下 sed 命令的操作 Input Time Banana spinach turkey sed i Banana s Toothpaste file Output Time BananaToothpas
  • Python Web 编程的不同方法的优缺点

    我想使用 Python 编写一些服务器端脚本 但我对这样做的方法有点迷失了 它从 DIY CGI 方法开始 似乎以一些相当强大的框架结束 这些框架基本上可以自己完成所有工作 中间有很多东西 比如web py http webpy org P
  • 真实值与预测值的降维可视化

    我有一个数据框 如下所示 label predicted F1 F2 F3 F40 major minor 2 1 4 major major 1 0 10 minor patch 4 3 23 major patch 2 1 11 min

随机推荐

  • 访问接口方法而不引用类

    假设我在一个名为 Interface 的项目中有一个这样的接口 public interface TestInterface string Operation 以及实现它的类 该类位于另一个项目 Class 中 public class T
  • Spark读取非UTF-8编码的整个文本文件

    我想通过以下方式读取非 UTF 8 编码的整个文本文件 val df spark sparkContext wholeTextFiles path 12 toDF 化为火花 如何更改编码 我想读取 ISO 8859 编码的文本 但它不是 C
  • IE 中 window.opener 的 JavaScript 问题

    我正在尝试使用以下 JavaScript 来检查弹出页面是否仍然打开 父页面 调用页面以打开弹出窗口 已打开 但此代码仍然失败 我从一个 aspx 弹出页面调用它 该页面在另一个母版页中有一个母版页 因此 最终调用此脚本的单击事件是内容占位
  • C# 中的 ref 和 out 参数不能标记为变体

    该声明的含义是什么 从这里 C 中的 ref 和 out 参数以及 不能被标记为变体 1 是否意味着不能进行以下操作 public class SomeClass
  • 删除异常值无法运行 cor.test()

    我正在从数据集的单列中提取异常值 然后我尝试运行cor test 在该列加上另一列 我收到错误 Error in cor test default dep delay noout distance x and y must have the
  • 如何更快地从 Firebase Firestore 获取数据?

    我是编程和 iOS 开发方面的新手 我正在尝试使用 Firebase 中的 Firestore 数据库制作一个应用程序 我不知道这是否正常 但是当我尝试从 firestore 数据库获取数据时 它对我来说似乎太长了 我不知道我是否犯了错误
  • 如何为 TGraphicControl 的后代组件添加鼠标滚轮支持?

    我创建了一个源自 TGraphicControl 的 delphi 组件 是否可以添加对鼠标滚轮的支持 编辑 我已经公开了 MouseWheel 事件 如下所示 但它们没有被调用 TMyComponent class TGraphicCon
  • GitHub 克隆错误:无法克隆并出现 EOF 错误

    我正在尝试使用 Ubuntu 13 04 从 GitHub 私人存储库克隆我的项目 我总是收到如下错误 error RPC failed result 18 HTTP code 200 17 KiB s fatal The remote e
  • 从 Excel 创建 Outlook 应用程序会生成类型不匹配错误

    我正在尝试使用 Outlook 模板创建 Outlook 电子邮件 On the Set obApp Outlook Application行 我收到错误 错误 13 类型不匹配 我似乎使用了本网站上有关该主题的其他帖子中使用的相同语法 我
  • 数据库继承的技术?

    当您需要将继承的类持久化到不支持继承的关系数据库时 有哪些技巧 技巧 假设我有一个经典的例子 Person gt Employee gt Manager gt Team lead gt Developer gt Customer gt Pr
  • 为 ASP.net 子控件生成 HTML“名称”属性,而不是唯一的“ID”属性

    为我的自定义 ASP net 服务器控件生成的 HTML 代码生成子控件的 name 属性 而不是 id 属性 像这样的东西 span span
  • HTTPWebResponse 原始响应,使用反射

    HTTPWebResponse 公开了 headers 的属性 是否可以获取原始响应就像我们使用套接字一样 标题和内容结合使用反射 我想一定有办法的 我可以使用套接字 但需要做很多工作才能使它们可用 例如代理支持 https 进度事件等 列
  • Javascript onclick 用 for 循环显示数组的最后一个元素

    我的问题不大 我正在研究一家公司的 KPI 我请求活动 他们给我返回一系列活动 这是代码的一部分 client requestActivities function activities if activities length gt 0
  • Android:视频录制抛出错误

    因此 我尝试使用内置相机活动来使用以下代码录制视频 Intent videoIntent new Intent MediaStore ACTION VIDEO CAPTURE videoIntent putExtra MediaStore
  • Android 在 asynctask 中设置文本

    我正在开发 UDP 程序 但我在申请时遇到问题setText in my asynctask 基本上在 UDP 服务器上 我只要求输入一个端口 然后服务器应该连接到本地主机和端口 ATextView布局中间显示 当前未连接 当我单击 连接到
  • 如何使用 LINQ、C# 向元素添加属性?

    我有一个具有许多属性的 XElement 对象 我只想向该元素添加另一个属性 我该怎么做呢 xElement Add new XAttribute Foo Bar
  • PHP/MySQL:对数据库中的重复事件进行建模,但查询日期范围

    我正在开发一个 我想要的 简单的 PHP MySQL 应用程序 作为其中的一部分 我希望能够对重复事件进行建模 但是我需要能够查询两个日期之间发生的所有事件 包括重复事件 事件只有日期 一天中的时间并不重要 我一直在研究这个问题并研究了各种
  • 在 Windows XP 中使用 SetWindowsHookEx 时出错,但在 Windows 7 中则不会

    我开发了一个使用全局键盘 鼠标挂钩的应用程序 它在 Windows 7 中完美运行 但在 Windows XP 中则不然 当我在 Windows XP 中调用 SetWindowsHookEx 时 收到错误代码 1428 int Mouse
  • 附件未通过 Laravel Mail 发送

    我正在尝试使用 Laravel 发送电子邮件并将生成的 PDF 附加到电子邮件中 电子邮件正在发送 但 pdf 未发送 笔记 使用 Laravel 版本 5 5 PHP 版本 gt 7 0 0 我用来生成pdf的库 https github
  • Pandas 列表列,为每个列表元素创建一行

    我有一个数据框 其中一些单元格包含多个值的列表 而不是存储多个 单元格中的值 我想扩展数据框 以便列表中的每个项目都有自己的行 在所有其他列中具有相同的值 所以如果我有 import pandas as pd import numpy as