如何在多个列上基于OR条件合并两个数据框?

时间:2020-05-18 11:03:05

标签: python-3.x pandas

this question开始,我试图匹配两个Pandas数据框。

匹配条件为:

(left_df.column_to_match == right_df.first_column) | (left_df.column_to_match == right_df.second_column )

或者换句话说,左边数据框中要匹配的列应等于右边数据框中的第一列或第二列-或条件。

我可以使用pd.merge并输入诸如

的列表来解决
left_df.merge(right_df, left_on=['to_match', 'to_match'], right_on=['first_column', 'second_column'])

但是,当两列都匹配时,这只会给我AND条件结果 。也就是说,right_df中的两列具有相同的值。

这是输入数据的示例

// left df                           // right df
    To Match                             First       Second   
0   TCNU4843483                      0   ASDREF      TCNU4843483    
1   MA18219                          1   MA18219     Null
2   MA81192                          2   Null        Null
3   MFREIGHT                         3   HROB789     NESU6748392

预期输出的

    To Match          First       Second   
0   TCNU4843483       ASDREF      TCNU4843483   
1   MA18219           MA18219     Null
2   MA81192           Null        Null
3   MFREIGHT          Null        Null
4   Null              HROB789     NESU6748392

关于熊猫是否支持此功能的任何想法,还是我必须编写自己的函数?

0 个答案:

没有答案