x1 = df1.set_index(['chr', 'pos'])['snp']
x2 = df2.set_index(['OCHR', 'OSTOP'])['ID']
x1.update(x2)
df1['snp'] = x1.values
Python pandas: replace values multiple columns matching multiple columns from another dataframe