如何在 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
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