如何在 pandas 中使用 2 个数据框映射 2 列?

How to map 2 columns by using 2 dataframe in pandas?

df_map

Camp_old     Camp_New         Plat
A_B          C_D              Car
E_F          G_H              Auto
W_X          Y_Z              Star


df_main
Camp        Num        
W_X         5
E_F         NaN
A_C_R       3
A_B         6

我想将新营地映射到 df_main 的营地,这很容易通过创建字典并将其传递给地图来实现。我的挑战是我需要从 df_map 映射 Plat 以及新列。

我想要的输出应该是这样的:

    Camp        Num     Camp_New    Plat
    W_X         5       Y_Z         Star
    E_F         NaN     G_H         Auto
    A_C_R       3       NaN         NaN
    A_B         6       C_D         Car

您需要合并两个数据框:

>>> df_main.merge(df_map, left_on='Camp', right_on='Camp_old', how='left')

    Camp  Num Camp_old Camp_New  Plat
0    W_X  5.0      W_X      Y_Z  Star
1    E_F  NaN      E_F      G_H  Auto
2  A_C_R  3.0      NaN      NaN   NaN
3    A_B  6.0      A_B      C_D   Car