Как найти и вернуть конкретное строковое значение в ячейке?

Есть таблица типа:

введите сюда описание изображения

Нужно добавить колонку "Готовность к переезду", а нужную информацию взять из колонки "Город".

Начал делать таким образом:

df.insert(5,'Готовность к переезду', np.array([df['Город'][i].split(',')[1] for i in range(len(df))]))

Но в колонке "Город" так же указано еще и метро, что приводит к тому, что в нужной ячейке вместо готовности к переезду появляется станция метро.

В ячейке встречаются нужные варианты ответов типа:"готов к переезду","не готов к переезду", "готова к переезду", "не готова к переезду".

Подскажите, пожалуйста, как вернуть нужный элемент в строке?

Сама таблица


Ответы (2 шт):

Автор решения: Ershow Daniel

Я бы выделил из этого столбца данные в следующем порядке: город, командировки, переезды, метро.

→ Ссылка
Автор решения: MaxU

Попробуйте так:

df["new"] = (
    df["Город"]
    .str.extract(",\s*([^,]*(?:переезду|переехать|relocate)[^,(]*)\s*[,(]")
    [0]
)

результат:

In [96]: df["new"]
Out[96]:
0      не готов к переезду
1      не готов к переезду
2         готов к переезду
3      не готов к переезду
4      не готов к переезду
               ...
939    не готов к переезду
940    не готов к переезду
941    не готов к переезду
942       готов к переезду
943    не готов к переезду
Name: new, Length: 944, dtype: object

In [97]: df["new"].unique()
Out[97]:
array(['не готов к переезду ', 'готов к переезду ',
       'не готова к переезду ', 'not willing to relocate ',
       'I want to relocate ', 'готова к переезду ',
       'willing to relocate ', 'хочу переехать '], dtype=object)
→ Ссылка