python - 使用 Pandas 数据框中的列来搜索和更新不同数据框中的列
问题描述
我有一个 excel 文件,我想用它来更新另一个更大的 excel 文件。两个电子表格都有一个序列号列,我想使用电子表格 A 中的序列号 col 中的值来搜索电子表格 B 中的序列号,然后在匹配时更新该行上的一些其他值。
我已将两个电子表格放入单独的数据框(dfA 和 dfB)中,并且我试图使用 dfA 通过合并来搜索和更新 dfB,但无法完全弄清楚。我想知道合并是否是最好的方法?如果是这样,我怎么能通过合并来做到这一点?或者最好的方法是什么?
以下是数据示例:
dfA: name serialNum status
test1 1234 deployed
test2 4321 retired
test3 1111 inventory
dfB: name serialNum status
test1 1234 NA
test2 4321 NA
test3 1111 NA
基本上我有一个非常大的电子表格,我需要用另一个电子表格更新状态
解决方案
您可以使用merge
将状态从 dfA 更新为 dfB。
输入数据:
>>> dfA
name serialNum status
0 test1 1234 deployed
1 test2 4321 retired
2 test3 1111 inventory
>>> dfB
name serialNum status
0 test1 1234 NaN
1 test2 4321 NaN
2 test3 1111 NaN
dfB['status'] = dfA.merge(dfB[['name', 'serialNum']],
on=['name', 'serialNum'],
how='right')['status']
这里真正重要的参数how
是执行合并。
输出
>>> dfB
name serialNum status
0 test1 1234 deployed
1 test2 4321 retired
2 test3 1111 inventory
推荐阅读
- c# - 无法使用后面的代码在 WPF 中为堆栈面板设置动画
- java - If 语句中的 OR 运算符
- tomcat - 由于没有 DefaultSerializerProvider,Tomcat 无法启动
- typescript - 如何为类和单个对象制作模板?
- windows - 在 Windows PowerShell 中使用计时器
- javascript - 如何检查 Javascript 中的值是否已更改?
- google-cloud-firestore - 云 FireStore 读取计数如何工作?
- python-requests - 如何通过表单以编程方式下载在谷歌驱动器中共享的 zip 文件?
- javascript - 将装饰器设计模式应用于 JavaScript 代码的问题
- python - 接受值网格的函数