【发布时间】:2021-09-08 13:56:14
【问题描述】:
我需要合并两个数据框,但可以在右侧数据框的任意两列上进行合并。
df_1 = pd.DataFrame({'col' : ['a', 'b', 'c']})
df_2 = pd.DataFrame({'col_a' : ['a', 'b', np.nan], 'col_b' : ['z', np.nan, 'c']})
df_1.merge(df_2, how = 'left', left_on = 'col', right_on = 'col_a')
在上面的示例中,合并正在寻找col == 'a' 和col == 'b' 的匹配项,因为df_2 在其col_a 列中包含这些值。但我也希望它能找到与df_2 的col_b == 'c' 匹配。如果正则表达式与合并一起使用,一个好的解决方案应该是这样的:
df_1.merge(df_2, how = 'left', left_on = 'col', right_on = 'col_a|col_b')
输出应如下所示:
col col_a col_b
a a z
b b NaN
c NaN c
有什么想法吗?
【问题讨论】: