Как найти и вернуть конкретное строковое значение в ячейке?
Есть таблица типа:
Нужно добавить колонку "Готовность к переезду", а нужную информацию взять из колонки "Город".
Начал делать таким образом:
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)
