首页 > 解决方案 > Pandas 使用数据框名称替换第二个数据框中任何位置的数据,并带有 id

问题描述

我有 2 个数据框。df1 具有 anid和 a name,而 df2 在 d1、d2、n1 和 f1 列中具有名称。我希望匹配两个数据框中的名称列,并将 df2 中的名称替换为 df1 中的 id。

df1
  id  name
0 A1  Ricky
1 A2  Cal
2 A3  Jean
4 A4  Charley

df2
  cal_date    d1     d2       n1      f1
0 2020-01-01  Ricky  Cal      NaN     Charley
1 2020-01-02  Ricky  Jean     Cal     Charley
2 2020-01-03  Cal    Charley  Ricky   NaN
3 2020-01-04  Jean   Cal      Ricky   Charley

期望的输出:

df3
  cal_date    d1   d2   n1    f1
0 2020-01-01  A1   A2   NaN   A4
1 2020-01-02  A1   A3   A2    A4
2 2020-01-03  A2   A4   A1    NaN
3 2020-01-04  A3   A2   A1    A4

标签: pythonpandas

解决方案


你不需要使用字典;你可以通过列表。

df2.replace(df1.name.values, df1.id.values, inplace=True)

推荐阅读