Вы должны выполнить внешнее слияние с кадрами данных, запрашивая переменную индикатора:
resul = df2.merge(df1, how='outer', on='A', suffixes=('', '_y'),indicator=True)
Не забудьте столбец DTDOSE
только для строк, идущих только от df1
:
resul.loc[resul['indicator'] == 'right_only', 'DTDOSE'] = resul.loc[
resul['indicator'] == 'right_only', 'DTDOSE_y']
Время вычислять новые значения для столбца Situação
:
resul.loc[resul['indicator'] == 'both', 'Situação'] = 'K'
resul.loc[resul['indicator'] == 'right_only', 'Situação'] = 'Q'
resul.loc[resul['indicator'] == 'left_only', 'Situação'] = 'B'
И, наконец, избавиться от вспомогательных столбцов:
resul = resul[['CODUSU', 'DTDOSE', 'Situação']