Как создать новый столбец в датафрейме, основываясь на поиске подстроки в другом столбце?

У меня есть столбец с описанием деятельности компании. Описание состоит из нескольких слов. Я подготовил список с ключевыми словами и хочу присваивать в новый столбец 1, если в описании деятельности встречается слово из списка с ключевыми словами, в противном случае 0. Как мне это реализовать?

Что имею:

medical_list = ['medical', 'health', 'vitamins']
id компании Описание
1 "medical tools, sport inventory"
2 "it management, analytics"
3 "sport and health"

Что хочу получить:

id компании Описание is_medical
1 "medical tools, sport inventory" 1
2 "it management, analytics" 0
3 "sport and health" 1

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

Автор решения: strawdog

Недавно был похожий вопрос. Вы пробовали искать среди ответов? решение - в использовании метода contains:
df:

   id                            desc
0   1  medical tools, sport inventory
1   2        it management, analytics
2   3                sport and health
df["is_medical"] = df["desc"].str.contains("|".join(medical_list)).astype(int)

теперь df:

   id                            desc  is_medical
0   1  medical tools, sport inventory           1
1   2        it management, analytics           0
2   3                sport and health           1

→ Ссылка