Скобки, такие как ()
, являются специальными символами в регулярном выражении, поэтому вам нужно использовать backsla sh \
перед ними, например:
df = pd.DataFrame({'fruit_name': ["apple","pear","passionfruit (Passiflora)", "grape"]})
substring_list = ['apple','\(passiflora\)']
print (df[df.fruit_name.str.contains('|'.join(substring_list), case=False)])
fruit_name
0 apple
2 passionfruit (Passiflora)