Pandas 连接两个表,但不确定 df2 中的哪一列("或"语法?



我想将两个表连接在一起。两张桌子都非常大(大约 1m 行)。问题是,并不总是清楚需要将联接到哪一行。理想情况下,程序应尝试加入col_x,如果失败,请尝试col_y

我需要按如下方式执行 or 逻辑:

df3=pd.merge(df1,df2,left_on'col1', right_on='col_x' or 'col_y', how='left')

任何关于如何最好地实施的建议,我们将不胜感激。

我会创建一个新列,其中包含您要首先合并的值。没有测试过,但我认为它会像

# first create new column
df2['merge_col'] = df2['col_x']
# replace empty values
empty_rows = df2['merge_col'].isnull()
df2.loc[empty_rows, 'merge_col'] = df2.loc[empty_rows, 'col_y']
# merge with the new column
df3 = pd.merge(df1, df2, left_on='col1', right_on='merge_col', how='left')

您是否尝试过类似以下内容的操作,或者您是否需要在合并函数中完成检查?

if df3["col_x"] == "":
    df3=pd.merge(df1,df2,left_on'col1', right_on='col_y', how='left')
else:
    df3=pd.merge(df1,df2,left_on'col1', right_on='col_x', how='left')

最新更新