При добавлении к методу @ WenYoBen, если в одном тексте есть только Париж или Лондон, тогда лучше str.extract
:
regex = '(London|Paris)'
df['city'] = df.text.str.extract(regex)
df
date text city
0 2019-6-7 London is good. London
1 2019-5-8 I am going to Paris. Paris
2 2019-4-4 Do you want to go to London? London
3 2019-3-7 I love Paris! Paris
И если вы хотите, чтобы все города в вашем регулярном выражении были в тексте, тогда str.extractall
также является опцией:
df['city'] = df.text.str.extractall(regex).values
df
date text city
0 2019-6-7 London is good. London
1 2019-5-8 I am going to Paris. Paris
2 2019-4-4 Do you want to go to London? London
3 2019-3-7 I love Paris! Paris
Обратите внимание, что при наличии нескольких совпадений extractall возвращает список