在匹配多列时连接 2 个数据帧

concatenate 2 dataframes while matching multiple columns

我有 2 个几乎相同的 pandas 数据框,有 5 个公共列。 我想将第二个数据框添加到第一个具有新列的数据框。

数据框 1

数据框 2

但我希望它更新同一行,因为列 'Lot name'、'wafer' 和 'site' 匹配(绿色)。如果列不匹配,我想要 NaN 的值,如下所示。

期望的输出

我必须对 160 多个离散列执行此操作,但可能匹配批次名称、WAFER 和 SITE 值。

我尝试了各种合并(左外右外)和连接选项,但似乎无法正确处理。任何 help\comments 表示赞赏。

编辑,跟进问题:

我正在尝试在循环中使用它,每次迭代都会生成一个分配给 TEMP 的新数据帧,该数据帧需要与之前的数据帧合并。我无法与空数据框合并,因为它会出现合并错误。我怎样才能做到这一点?

alldata = pd.DataFrame()


for i in range(len(operation)):
    temp = data[data['OPE_NO'].isin([operation[i]])]
    temp = temp[temp['PARAM_NAME'].isin([parameter[i]])]
    temp = temp.reset_index(drop=True)
    temp = temp[["LOT",'Lot name','WAFER',"SITE","PRODUCT",'PARAM_VALUE_NUMBER']]
    temp = temp.rename(columns={'PARAM_VALUE_NUMBER':'PMRM28LEMCKLYTFR.1~'+operation[i]+'~'+parameter[i]})
    alldata.merge(temp,how='outer')

示例可以使用以下代码完成

df1.merge(df2, how="outer")

如果我误解了问题,请告诉我问题。

我的英语不好,但我很乐意帮助你