使用 Pandas 数据框中的列搜索和更新不同数据框中的列

Use a column in a Pandas dataframe to search and update a column in a different dataframe

我有一个 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