我有两个表,我想用id列将一个表映射到另一个表。这两个表的id大小不相等。如果找不到ID,则列结果为n / a。
表A
id type
2231 C
1213 A
1241 C
表B
id other columns
2232 X
1213 Y
1233 I
目标是映射表A中的id值,并在表B中添加一个附加列。
理想表
id other columns type
2232 X n/a
1213 Y A
1233 I n/a
我厌倦了从表A中找到所有的Type A。
typeA = df_A.id.loc[df_A.type == 'A']).tolist()
df_B.type = df_B.loc[df_B.isin(typeA)]
...
我考虑过按ID合并两个表,但是它们具有不同的ID大小,也许也有不同的ID。 有没有更有效的方法可以做到这一点?感谢您的时间。
答案 0 :(得分:4)
您可以使用地图
dfB['type'] = dfB.id.map(dfA.set_index('id').type)
id other columns type
0 2232 X NaN
1 1213 Y A
2 1233 I NaN
答案 1 :(得分:2)
您可以将id
上的merge
与参数{{1}一起使用,将how='left'
与fillna
一起使用,
n/a