从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
关于熊猫是否支持此功能的任何想法,还是我必须编写自己的函数?