Лучший способ, с помощью которого я нашел такое сравнение:
#1. You transform the values you want to check on as a set
# because you don't care about having them ordered. This saves A LOT of complexity
source = set(sourcetarget.sourcetarget.values)
# 2. Use the isin function
db1['top'] = 0
db1.loc[db1['clean_nomComplet'].isin(source), 'top'] = 1
Проблема в вашем скрипте заключается в том, что вы меняете значение всего столбца. Вы должны скорее использовать:
for index, row in db1.iterrows():
[...]
if res0 >= 0:
db1.loc[index,'top'] = 1
else:
db1[index, 'top'] = 0