使用两个键合并数据帧表

时间:2016-03-10 12:45:59

标签: python join pandas

我正在尝试将两个表合并在一起,其中一个表是数据集,另一个表根据第一个表中的两个键更详细地解释测试结果。数据表

results_items:

Test ID | Vehicle ID | Test Class ID | Test Result | RfR ID
17           28             2               F          530
22           33             2               P          548
44           49             4               F          7003
52           54             4               F          8553

第二张表

item_detail

RfR ID  Test Class ID    RfR Desc Marker                     RfR Insp Man Desc         
4               1        missing                             an obligatory lamp missing     
4               2        missing                             an obligatory lamp missing     
5               1        damaged and function impaired       so damaged or deteriorated that its function is impaired

我正在尝试使用RfR ID和Test Class ID上的内部联接来合并它们,以便第一个表中的每一行都有与之关联的描述,如下所示:

Test ID | Vehicle ID | Test Class ID | Test Result | RfR ID  |   RfR Insp Man Desc
17           28             2               F          530       an obligatory lamp missing
22           33             2               P          548       an obligatory lamp missing
44           49             4               F          7003      so damaged or deteriorated that its function is impaired
52           54             4               F          8553      so damaged or deteriorated that its function is impaired

我尝试使用以下逻辑:

results_items_desc = pd.merge(
    results_items,
    item_detail,
    how = 'inner',
    on = ['Test Class ID','RfR ID']
)

因为这是我在SQL中所做的,但是输出表是空的。我唯一的理论是它可能与列的顺序有关,但是这从未影响我在sql中的结果

1 个答案:

答案 0 :(得分:1)

所以problem使用不同的types合并列。

解决方案是通过astype

将列投射到string
results_items['Test Class ID'] = results_items['Test Class ID'].astype(str)

或:

item_detail['Test Class ID'] = item_detail['Test Class ID'].astype(str)