首页 > 解决方案 > 使用 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

基本上我有一个非常大的电子表格,我需要用另一个电子表格更新状态

标签: pythonpandasdataframemerge

解决方案


您可以使用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

推荐阅读