我有两个数据帧,分别称为数据帧A和数据帧B
A
id| column1 |column2
3 | 439 | 2398
41| 498 | 34
2 | 233 | 43
B
column1 |column2
439 | 2398
498 | 56
233 | 43
我想根据数据帧A中的ID将一个ID列分配给数据帧B。如果在数据帧A和数据帧B中存在一行,我想将数据帧A中的相应ID分配给数据帧B。如果数据框B中的行不在数据框中,则AI希望为B中id列中的该单元格分配“无”。也就是说,我希望拥有
B
id | column1 |column2
3 | 439 | 2398
None| 498 | 56
2 | 233 | 43
问题:如何根据数据框B中的列将数据框A中的ID分配给数据框B?
答案 0 :(得分:3)
您可以使用左合并。请注意,对于数字系列NaN
,值将强制id
系列成为float
类型。在大多数情况下,这不是问题,我也不建议您逐行“强制”类型转换。
res = pd.merge(B, A, how='left')
print(res)
column1 column2 id
0 439 2398 3.0
1 498 56 NaN
2 233 43 2.0