Для вашего базового понимания я сделал кое-что ниже, но я рекомендую вам использовать ответы других экспертов, потому что они более общие.
df = pd.DataFrame([['cat', 'bridge','cat','brush'], ['brush','dog','cat','shoe'], ['bridge','cat','shoe','bridge' ]], columns=['target','A', 'B','C'])
mapper = {0:'A',1:'B',2:'C'}
func = lambda x : mappr[[x['A'],x['B'],x['C']].index(x['target'])] if x['target'] in [x['A'],x['B'],x['C']] else np.nan
df['D'] = df.apply(func, axis=1)
df
выход
target A B C D
0 cat bridge cat brush B
1 brush dog cat shoe NaN
2 bridge cat shoe bridge C