Найти слова и создать новое значение в другом столбце pandas данных с регулярным выражением - PullRequest
0 голосов
/ 14 января 2020

предположим, у меня есть фрейм данных, который содержит:

df = pd.DataFrame({'Name':['John', 'Alice', 'Peter', 'Sue'],
                   'Job': ['Dentist', 'Blogger', 'Cook', 'Cook'], 
                  'Sector': ['Health', 'Entertainment', '', '']})

, и я хочу найти всех «поваров», прописными буквами или нет, и назначить их столбцу «Сектор» со значением под названием « гастрономия », как мне это сделать? И без перезаписи других записей в колонке «Сектор»? Спасибо!

Ответы [ 2 ]

4 голосов
/ 14 января 2020

Вот один из подходов:

df.loc[df.Job.str.lower().eq('cook'), 'Sector'] = 'gastronomy'

print(df)

    Name      Job         Sector
0   John  Dentist         Health
1  Alice  Blogger  Entertainment
2  Peter     Cook     gastronomy
3    Sue     Cook     gastronomy
2 голосов
/ 14 января 2020

Использование Series.str.match с regex и флагом регулярных выражений для ввода без учета регистра (?i):

df.loc[df['Job'].str.match('(?i)cook'), 'Sector'] = 'gastronomy'

Вывод


    Name      Job         Sector
0  John   Dentist  Health       
1  Alice  Blogger  Entertainment
2  Peter  Cook     gastronomy   
3  Sue    Cook     gastronomy 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...