Используйте apply
, с ' '.join
, а затем используйте понимание списка, чтобы получить значения, соответствующие
Кроме того, вы должны использовать axis=1
для его работы:
print(df.apply(lambda x: ' '.join([i for i in x['Col1'].split() if i in x['Col2'].split()]), axis=1))
Выход:
0 the cat
1
2 chicken
dtype: object
Если вы хотите NULL
, вместо простого значения используйте:
print(df.apply(lambda x: ' '.join([i for i in x['Col1'].split() if i in x['Col2'].split()]), axis=1).str.replace('', 'NULL'))
Выход:
0 the cat
1 NULL
2 chicken
dtype: object