Решение 1: Используйте столбец if 'value' только в df1 и df2, но не df_master.
dfcon = pd.concat([df1, df2])
df = pd.merge(df_master, dfcon, how='left', on='CAS')
Решение 2: Используйте, если столбец 'value' также находится в df_master.
df_master_drop = df_master.drop(columns=['value'])
df_drop = pd.merge(df_master_drop, dfcon, how='left', on='CAS')
df = df_master.combine_first(df_drop)
Примечания: Используйте dfcon = pd.concat ([df1, df2]). Drop_duplicates ('CAS'), если есть дубликаты. Это сохранит самое раннее значение CAS.