根据另一个数据框中的ID分配数据框ID

时间:2018-10-02 09:23:27

标签: python python-3.x pandas dataframe

我有两个数据帧,分别称为数据帧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?

1 个答案:

答案 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