多索引 pandas 更新

2024-03-22

有两个数据帧 df1 和 df2:

import pandas as pd
import numpy as np
import datetime

A = list(range(3,9))
B = [datetime.date(2019,1,1), datetime.date(2019,1,3), datetime.date(2019,1,2), datetime.date(2019,1,8), datetime.date(2017,6,2), datetime.date(2011,5,6)]
C = list('abcdef')
D = list('LMNOPQ')
E = list(range(5,11))

df1 = pd.DataFrame({'A': A, 'B': B, 'C': C, 'D': D, 'E': E})

a = list(range(3,7))
b = [datetime.date(2010,1,1), datetime.date(2019,1,3), datetime.date(2019,1,2), datetime.date(2010,2,10)]
c = list('xymb')
d = list('GZYP')

df2 = pd.DataFrame({'A': a, 'B': b, 'C': c, 'D': d})

行索引 1 和 2 具有相同的列“A”和“B”。

使用 df2 列“C”和“D”的数据更新 df1 的最佳方法是什么?

df3 = df1.set_index(['A', 'B']).update(df2.set_index(['A', 'B']))

...不起作用

预期输出是:

    A   B           C   D   E
0   3   2019-01-01  a   L   5
1   4   2019-01-03  y   Z   6
2   5   2019-01-02  m   Y   7
3   6   2019-01-08  d   O   8
4   7   2017-06-02  e   P   9
5   8   2011-05-06  f   Q   10

这是工作,只需要分隔行,因为更新会更改原始 df ,因此不需要分配。

df1=df1.set_index(['A', 'B'])
df1.update(df2.set_index(['A', 'B']))
df1=df1.reset_index()
df1
   A          B  C  D   E
0  3 2019-01-01  a  L   5
1  4 2019-01-03  y  Z   6
2  5 2019-01-02  m  Y   7
3  6 2019-01-08  d  O   8
4  7 2017-06-02  e  P   9
5  8 2011-05-06  f  Q  10
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多索引 pandas 更新 的相关文章

随机推荐

  • 如何为Google的MLKIT使用图像格式YUV_420_888

    ImageReader 从相机预览中获取每一帧是具有格式的图像YUV 420 888 我想用它作为 MLKIT 的输入 在谷歌的文档中 我可以运行检测器 输入是 Bitmap 媒体图像 字节缓冲区 字节数组 A File 我尝试转换YUV
  • ExpressJS:承诺和错误处理中间件

    我定义了一些错误处理中间件和返回承诺的路由 但是当这个承诺出现错误时 我必须手动附加 catch err gt next err 在每一个承诺之后 虽然这不是问题 但对于 ExpressJs 来说 查看路由是否返回 Promise 如果返回
  • 快速使函数中的计时器无效

    我正在尝试创建一个带有主比赛时钟和开始 停止按钮的曲棍球比赛时钟应用程序 但我的 stopGameclock 函数遇到了问题 计时器不会失效 通过在这里搜索其他问题 我认为这与我有关 var gameclockTimer NSTimer 接
  • NSArray 和 NSMutableArray 的区别

    黑白有什么区别NSArray and NSMutableArray NSMutableArray 以及所有其他类Mutable名称中 可以修改 所以 如果你创建一个普通的NSArray 您以后无法更改其内容 无需重新创建它 但如果你创建一个
  • IdentityServer4 PKCE 错误:“转换后的代码验证程序与代码质询不匹配”

    我无法获得使用 Postman 工作的 IdentityServer4 PKCE 授权 使用在线工具我创建了必要的部分 选择一个随机字符串 1234567890 获取其 SHA 256 哈希值 c775e7b757ede630cd0aa11
  • Safari 中存在块作用域变量的 bug?

    我正在测试是否可以使用块作用域来替换 IIFE 以通过闭包创建 私有 变量 在 Safari 11 0 3 11604 5 6 1 1 中进行测试之前一切进展顺利 该版本支持块作用域 但存在块和闭包的错误 例如 let i 0 functi
  • ConcurrentDictionary 陷阱 - GetOrAdd 和 AddOrUpdate 的委托工厂是否同步?

    的文档ConcurrentDictionary没有明确说明 所以我想我们不能指望代表valueFactory and updateValueFactory让它们的执行同步 分别来自 GetOrAdd 和 AddOrUpdate 操作 所以
  • 在文件中每行的开头和结尾添加字符

    在每行的开头和结尾添加一些字符的最佳方法是什么 可以使用 Vim 或其他方式完成吗 在vim中 你可以这样做 s 1 s regex replace 是用于搜索和替换的 vim 命令 使其适用于整个文件 and 分别表示行的开始和结束 捕捉
  • 在摩卡测试之间重新导入模块

    在我的节点 打字稿快递应用程序中 我将配置设置存储在settings json作为对象加载和导出的文件config ts 每个使用配置设置的模块都会像这样导入模块 import Config from config config ts看起来
  • 如何使用 C# 验证文件是否是受密码保护的 ZIP 文件

    给定文件路径 如何验证该文件是否是受密码保护的 zip 文件 即 我将如何实现这个功能 bool IsPasswordProtectedZipFile string pathToFile 我不需要解压缩该文件 我只需要验证它是否是 ZIP
  • 可拖动的CALayer

    有什么方法可以让用户拖动 CALayer 吗 如果是这样 怎么办 在可可 Mac 中 图层本身无法接收鼠标事件 您必须在包含该层的视图或视图控制器中进行事件处理 If a mouseDragged 事件起源于某个层 请参见 CALayer
  • 在C++中使用const成员变量有什么优点

    我写代码像 template
  • python-re:如何匹配字母字符

    如何将字母字符与正则表达式匹配 我想要一个角色 w但不在 d 我希望它与 unicode 兼容 这就是为什么我不能使用 a zA Z 你的前两句话互相矛盾 在 w但不在 d 包括下划线 我从你的第三句话假设你不需要下划线 在信封背面使用维恩
  • iOS:用于登录屏幕的表格样式文本字段?

    我想制作一个像 Facebook 应用程序那样的登录屏幕 我想要复制的部分是两个文本字段 它们堆叠起来看起来像一个表格组 但我不明白他们是怎么做到的 谁知道其中的窍门 我无法发布图片 因为我是 stackoverflow 的新手 这是一种效
  • PHP 图片大小小于 1mb

    目前我正在使用以下内容来计算文件大小是否小于 1MB 但是由于以下代码来自 9lession 示例站点 它说要检查 1mb 的大小 但如果我乘以 1024 2 这就是他们在这里所做的不等于 1mb 而是 2048kb 说它上传的大小不是以
  • 如何在 macOS 上的 SwiftUI 中检测键盘事件?

    如何在 macOS 上的 SwiftUI 视图中检测键盘事件 我希望能够使用击键来控制特定屏幕上的项目 但不清楚如何检测键盘事件 这通常是通过覆盖keyDown event NSEvent in NSView 与 Xcode 12 捆绑在一
  • 将正则表达式匹配到第一个空格

    我必须填充商店的图像 并提供以下格式的图像文件夹 例如BRL0368 Side jpg 5510 Dura Guard Carpet jpg 现在我想做的就是把所有这些都砍掉 这样我就可以尝试在 Excel 中匹配零件编号 例如 BRL03
  • Func 的性能和继承

    我一直无法理解使用的性能特征Func lt gt 在我的代码中 当使用继承和泛型时 我发现自己一直在使用继承和泛型的组合 让我从一个最小的测试用例开始 这样我们都知道我们在说什么 然后我将发布结果 然后我将解释我的期望和原因 最小测试用例
  • AWS python lambda函数:没有名为请求的模块

    我对 AWS 还很陌生 遇到了一些问题 这是我的代码 from future import print function from urllib2 import Request urlopen URLError import request
  • 多索引 pandas 更新

    有两个数据帧 df1 和 df2 import pandas as pd import numpy as np import datetime A list range 3 9 B datetime date 2019 1 1 dateti