将 pandas 中的多索引与单索引数据帧合并

2023-12-23

我有两个数据框。 df1 是多索引的:

                value
first second    
a     x         0.471780
      y         0.774908
      z         0.563634
b     x         -0.353756
      y         0.368062
      z         -1.721840

and df2:

      value
first   
a     10
b     20

如何将两个数据帧与仅一个多索引(在本例中为“第一个”索引)合并?期望的输出是:

                value1      value2
first second    
a     x         0.471780    10
      y         0.774908    10
      z         0.563634    10
b     x         -0.353756   20
      y         0.368062    20
      z         -1.721840   20

你可以使用get_level_values http://pandas.pydata.org/pandas-docs/dev/indexing.html#reconstructing-the-level-labels:

firsts = df1.index.get_level_values('first')
df1['value2'] = df2.loc[firsts].values

注:你是almost做一个join http://pandas.pydata.org/pandas-docs/dev/merging.html#joining-on-index在这里(除了 df1 是 MultiIndex)...所以可能有一种更简洁的方法来描述这一点...

.

在一个例子中(类似于你所拥有的):

df1 = pd.DataFrame([['a', 'x', 0.123], ['a','x', 0.234],
                    ['a', 'y', 0.451], ['b', 'x', 0.453]],
                   columns=['first', 'second', 'value1']
                   ).set_index(['first', 'second'])
df2 = pd.DataFrame([['a', 10],['b', 20]],
                   columns=['first', 'value']).set_index(['first'])

firsts = df1.index.get_level_values('first')
df1['value2'] = df2.loc[firsts].values

In [5]: df1
Out[5]: 
              value1  value2
first second                
a     x        0.123      10
      x        0.234      10
      y        0.451      10
b     x        0.453      20
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 pandas 中的多索引与单索引数据帧合并 的相关文章

随机推荐

  • 覆盖查询集的更新方法 - Django

    我们如何更改 django 中查询集的 update 方法的默认过程 因为它不会为每个对象调用 save 方法 由于我已经重写了 save 方法 因此每次更改对象时都需要调用它 我寻找Django 文档 https docs djangop
  • AntiXSS JavaScriptEncode 获取 HTML 编码?

    我刚刚开始使用 AntiXSS 4 3 0 主要是为了使用 Encoder JavaScriptEncode如上所述here http weblogs asp net jongalloway preventing javascript en
  • 如何在默认范围内按相关型号订购? -- 轨道 3.1

    如何编写以下默认范围 class SimilarMerchant lt ActiveRecord Base relationships belongs to merchant belongs to similar merchant fore
  • Java swing 禁用窗口

    I would like to disable the window in my swing application here is a picture to demonstrate what I mean My paint skills
  • jBPM 5:数据库表脚本在哪里?

    我在 JBPM 5 4 中创建了一个关于持久性的简单示例 它运作成功并且 记录已成功插入到创建的架构中的表中 但我的问题是 虽然该表是在架构中创建的 但它还创建了其他三个表 节点实例日志 变量实例日志 进程实例日志 但是创建这些表的脚本在哪
  • 通过Python创建文件和目录

    我在创建目录然后打开 创建 写入指定目录中的文件时遇到问题 我似乎不清楚原因 我正在使用 os mkdir 和 path chap name print Path chap path For debugging purposes if no
  • 使用http而不是https的redirect_uri

    我正在使用 spring stack Spring Boot 2 0 1 RELEASE 来创建一个通过 OAuth2 将用户身份验证 注册委托给 Facebook 的网站 当我单击 使用 facebook 登录 按钮时 我会被重定向到 F
  • jQuery 查找并替换第二个

    我想知道如何查找和替换 div 中的某些文本 但我想查找并替换该文本的第二次出现 例如 您刚刚添加了一个项目 请删除该项目 所以我想找到第二个 项目 并将其替换为我选择的任何文本 JS var compareCount compareWid
  • SQL日期格式和引用混乱

    我有以下测试记录 以下查询结果为 0 条记录 SELECT FROM events dates WHERE start date 21 12 2014 但以下查询结果为 1 条记录 SELECT FROM events dates WHER
  • 用 | 分割字符串java中的分隔符

    我有一个像这样的字符串 1 value 我想拆分该字符串并选择 作为分隔符 我的代码如下所示 String separated line split 我得到的是一个包含所有字符作为一个条目的数组 separated 0 separated
  • 为什么FolderBrowserDialog对话框不滚动到选定的文件夹?

    如该屏幕截图所示 所选文件夹不在视图中 需要向下滚动才能查看所选文件夹 同一对话框显示在不同计算机上可见的选定文件夹 我在两台装有 Windows 7 的计算机上运行它 它在一台计算机上运行正常 但在第二台计算机上运行不正常 它看起来与 W
  • 应用程序委托 - Cocoa

    我想将 applicationDidFinishLaunching 合并到我的可可委托中 我该怎么做 在 iphone SDK 上 applicationDidFinishLaunching 已经在应用程序委托中 但在制作我的 mac 应用
  • 如何对数据进行分箱以删除低计数?

    我想出于保护隐私的目的使用装箱来处理数据 数据涉及数字整数 并且必须以频率高于最小值的方式进行分箱 x 我还想最小化垃圾箱的宽度 以尽可能多地保留数据 最小化 bin 的宽度并没有严格定义 因为这只是避免不必要的数据丢失的一般目标 由于整数
  • 使用 SkiaSharp 调整大小时 iPhone 图像方向错误

    我在 Xamarin Forms 项目上使用 SkiaSharp 中的 SKBitmap Resize 方法来调整图像大小以供显示 我遇到的问题是在 iOS 上拍照时 当纵向拍摄照片时 图像显示为右侧朝上 在 Android 上拍照 从 A
  • 如何在jasper报告中使用divide()方法?

    我使用 iReport1 3 3 工具创建 pdf 和 xls 模板 我的问题是下面的表达式 V strloanNo divide V loanCalculation 我需要除以两个变量 但我没有得到预期的结果 它显示 null 值 大家有
  • 递归调用异步 API 调用

    我正在尝试从每次调用仅返回 1000 个项目的 API 中获取数据 并且我想递归地执行此操作 直到获得所有数据 我事先不知道总共有多少件物品 所以每次打电话后我都必须检查 如果调用是同步的 我会使用如下内容 function fetch a
  • 如何查找大括号之间的多行文本?

    我有下一个输入字符串 ANIM NAME KEY Index 26 AFrames 1 0x301C AF 0x201C 1 0 0 FREE ROTATE 0 FREE SCALE XY 100 100 我怎样才能得到两个花括号之间的整个
  • java.sql.SQLException:列计数与第 1 行错误的值计数不匹配[重复]

    这个问题在这里已经有答案了 我试图在表中插入数据 但它显示以下错误 java sql SQLException 列计数与第 1 行的值计数不匹配 我已经搜索了这个错误并尝试了所有解决方案 但仍然无法使其工作 这是我的代码 类 html
  • 从 data.frame 转换为数字矩阵时,为什么值会发生变化?

    我需要将数据框转换为数字矩阵 但是 当我使用data frame函数中 小数被转换为不同的数字 我不知道为什么 有人可以告诉我发生了什么事吗 gt head x 1 5 TCGA AA 3520 01A 01R 0821 07 TCGA A
  • 将 pandas 中的多索引与单索引数据帧合并

    我有两个数据框 df1 是多索引的 value first second a x 0 471780 y 0 774908 z 0 563634 b x 0 353756 y 0 368062 z 1 721840 and df2 value