Pandas:将多列添加到多索引列数据框中

2023-12-28

这个问题试图概括为此问题提供的解决方案:

Pandas:将列添加到多索引列数据框中 https://stackoverflow.com/questions/16088741/pandas-add-a-column-to-a-multiindex-column-dataframe

我需要为每个列索引生成一列。

提供的解决方案spencerlyon2当我们想要添加单个列时有效:

df['bar', 'three'] = [0, 1, 2]

不过,我想将这个操作推广到每个第一级列索引。

来源DF:

In [1]: df
Out[2]:
first        bar                 baz
second       one       two       one       two
A      -1.089798  2.053026  0.470218  1.440740
B       0.488875  0.428836  1.413451 -0.683677
C      -0.243064 -0.069446 -0.911166  0.478370

下面的目标 DF 要求three列是添加one and two其各自索引的列。

In [1]: df
Out[2]:
first        bar                           baz                 
second       one       two     three       one       two      three
A      -1.089798  2.053026  0.963228‬  1.440740 -2.317647  -0.876907‬
B       0.488875  0.428836  0.917711 -0.683677  0.345873  -0.337804‬
C      -0.243064 -0.069446 -0.312510  0.478370  0.266761   0.745131‬

您可以使用join使用两个具有相同索引的数据框一次性创建一堆列。


首先,使用计算总和groupby反对axis=1

ndf = df.groupby(df.columns.get_level_values(0), axis=1).sum()
        bar       baz
A  0.963228  1.910958
B  0.917711  0.729774
C -0.312510 -0.432796

(PS:如果你有两列以上,你可以这样做

df.loc[:, (slice(None), ['one', 'two'])].groupby(df.columns.get_level_values(0), axis=1).sum()

首先只切片“一”和“二”列,然后then groupby)

然后,使其与您的列索引匹配,即使其成为多索引数据框,就像原始数据框一样

ndf.columns = pd.MultiIndex.from_product([ndf.columns, ['three']])
        bar       baz
      three     three
A  0.963228  1.910958
B  0.917711  0.729774
C -0.312510 -0.432796

最后,df.join https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.join.html

finaldf = df.join(ndf).sort_index(axis=1)

如果您真的关心顺序,请使用reindex

finaldf.reindex(['one', 'two', 'three'], axis=1, level=1)

first        bar                           baz                    
second       one       two     three       one       two     three
A      -1.089798  2.053026  0.963228  0.470218  1.440740  1.910958
B       0.488875  0.428836  0.917711  1.413451 -0.683677  0.729774
C      -0.243064 -0.069446 -0.312510 -0.911166  0.478370 -0.432796
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas:将多列添加到多索引列数据框中 的相关文章

  • Pycharm Python 控制台不打印输出

    我有一个从 Pycharm python 控制台调用的函数 但没有显示输出 In 2 def problem1 6 for i in range 1 101 2 print i end In 3 problem1 6 In 4 另一方面 像
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • Python - 在窗口最小化或隐藏时使用 pywinauto 控制窗口

    我正在尝试做的事情 我正在尝试使用 pywinauto 在 python 中创建一个脚本 以在后台自动安装 notepad 隐藏或最小化 notepad 只是一个示例 因为我将编辑它以与其他软件一起使用 Problem 问题是我想在安装程序
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 在 Python 类中动态定义实例字段

    我是 Python 新手 主要从事 Java 编程 我目前正在思考Python中的类是如何实例化的 我明白那个 init 就像Java中的构造函数 然而 有时 python 类没有 init 方法 在这种情况下我假设有一个默认构造函数 就像
  • 您可以在 Python 类型注释中指定方差吗?

    你能发现下面代码中的错误吗 米皮不能 from typing import Dict Any def add items d Dict str Any gt None d foo 5 d Dict str str add items d f
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例

随机推荐

  • 如何仅向测试人员发布新版本的 Chrome 扩展程序

    我有一个有很多用户的 Chrome 扩展程序 我想更新它 我已准备好一切 但我需要测试更新以确保当前用户不会丢失数据 有没有办法只将新版本发布给受信任的测试人员 我创建了一个测试组 我插入受信任的测试人员电子邮件帐户 我已在测试帐户下登录
  • 架构和数据字典有什么区别?

    模式的定义是数据库中数据的逻辑结构 它由用户拥有并与数据库用户同名 模式包含表的名称 它的列类型是什么等 数据字典也仅包含元数据 当然它是在数据库级别而不是用户级别 模式和数据字典之间的确切区别是什么 这些定义来自我的经验 20 多年的程序
  • VBS代码中的With语句,在PowerShell中如何表达

    有没有可以快速将VBS代码转换为PowerShell代码的软件或工具 另外 我想知道的是 以下WithVBS代码中的语句 在PowerShell中如何表达 The With语句很棒 可以缩短代码 我可以在PowerShell中实现类似的功能
  • 错误:未授予权限...react-native-image-picker

    我正在尝试使用客户端应用程序中的内存上传图像 反应本机图像选择器 0 26 4 执行以下示例片段后 我以意想不到的方式得到了响应 ImagePicker showImagePicker options response gt console
  • WPF 应用程序基于角色的访问控制 - 最佳实践

    我需要实施某种RBAC http en wikipedia org wiki Rbac对于我目前正在编写的 WPF 应用程序 自 v2 0 起 ASP NET 就拥有了安全性 成员身份和角色管理基础架构 如所述here http weblo
  • jaxws-api 2.2 未在 Maven 构建中加载

    我已经使用 Apache CXF 工具 wsdl2java 生成了 Java 代码 在我的服务评论中 它说我应该支持 Jaxws API 2 2 但不知道这意味着什么 在我的 Maven POM 中我有这个
  • 如何以编程方式圆角并设置随机背景颜色

    我想圆化视图的角 并根据运行时的内容更改视图的颜色 TextView v new TextView context v setText tagsList get i if i 2 0 v setBackgroundColor Color R
  • 以编程方式在 Swift 中模拟滑动手势

    我正在实现一个用于在 Swift 中滑动的手势识别器 我希望能够模拟卡片的投掷 以编程方式滑动视图 我以为会有一个内置函数来实现这一点 但我发现的只是点击手势而不是滑动手势 这就是我实现滑动手势的方式 let gesture UIPanGe
  • 如何在 VS Code 中自定义多个主题的 textMateRules? [复制]

    这个问题在这里已经有答案了 In VS Code 我想定制一些textMateRules多个主题相同 例如 两者都用于Atom One Dark and Default Dark 但在不影响任何其他主题的情况下 我想让keywords it
  • 使用 CreateProcess 运行批处理文件

    我正在尝试使用 CreateProcess 启动一个新的环境块并在新的环境块中运行批处理文件 我已经阅读了 CreateProcess 的 msdn 示例 并得出了如下所示的代码 发生了什么 它将打开新的命令提示符 并停在那里 由于某种原因
  • Angular 材质 md-button 悬停颜色变化

    div class non active div
  • sublimerepl getenv 失败

    我想将 SiblimeREPL 包与 Sublime Text 一起使用 当我尝试启动 REPL 时 我得到 SublimeREPL obtaining sane environment failed in getenv Check con
  • 通过 TinyXML 深度复制 XML

    我正在使用tinyxml 如何复制或创建现有 XMLDocument 的副本 http www grinninglizard com tinyxmldocs classTiXmlDocument html a4e8c1498a76dcde7
  • 如何正确使用VAVR集合做到线程安全?

    VAVR 集合是 不可变的 那么 如果我有静态变量 例如 保存所有 WebSocket 会话 我将如何使用 VAVR 以使集合是线程安全的 例如 ServerEndpoint actions public class DeviceWebSo
  • TFRecords 和记录改组

    我的理解是 最好的做法是对每个时期的训练样本进行洗牌 以便每个小批量包含整个数据集的一个很好的随机样本 如果我将整个数据集转换为包含 TFRecords 的单个文件 那么在加载整个数据集的情况下如何实现这种改组 我的理解是 没有对 TFRe
  • 解析关于图像的迁移到heroku/aws

    我已成功将解析数据库迁移到 aws 但图像文件的 url 仍然像http files parsetfss com 77447afb f681 4b55 afad 6bceeb2e155a tfss 79297c86 bd48 4d7f 87
  • 如何定位 [(ngModel)] 进行量角器测试

    span class selector label Team span
  • 查询结果不显示具有空值的记录

    我正在设计一个搜索表单 根据 4 个文本字段 名字 姓氏 电话号码和促销代码 搜索我的访问数据库 查询看起来像 Like Forms SearchF txtFirstName Like Forms SearchF txtSurnameNam
  • 如何在 onPictureTaken 函数之后恢复 Android 相机预览?

    我正在开发一个从相机对象拍照并将其保存到 SD 卡的应用程序 除了某些事情之外 它工作得很好 我无法配置一些参数 例如分辨率 但是当我拍照时它会冻结在屏幕上 我只想在拍照后以同样的方式恢复预览和拍摄 这是完整的代码 http bahacan
  • Pandas:将多列添加到多索引列数据框中

    这个问题试图概括为此问题提供的解决方案 Pandas 将列添加到多索引列数据框中 https stackoverflow com questions 16088741 pandas add a column to a multiindex