Панды - использование isin для возврата, если столбец содержит какие-либо значения в списке, а не все - PullRequest
0 голосов
/ 15 мая 2018

Извините за довольно простой вопрос, довольно новый для python / pandas.

Я пытаюсь создать из моей базы данных столбец, который возвращает значение True или False относительно того, содержит ли другой столбец какую-либо (не все) строку из списка строк. В настоящее время мой код выглядит так:

keywords_list = ["foo, bar, ..etc]

df['relevant'] = df['Description'].isin(keywords_list)

Я знаю, что мой столбец «Описание» содержит некоторые значения в списке, но он возвращает все как ложные. Я посмотрел на похожие вопросы по стеку (см. Ниже), и они все говорят, что я делаю. Но в документации для панд (также ниже) сказано, что isin работает, только если он содержит все значения в списке. Есть ли функция, которую я могу использовать, которая будет возвращать, если столбец содержит какие-либо значения в списке? Пожалуйста, помогите!

Отфильтровывать строки на основе списка строк в Pandas https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.isin.html

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Возможно, вам придется разделить слова с помощью split и затем использовать isin

df = pd.DataFrame({'Description': ['foo bar blah', 'new foo', 'newfoo', 'bar']})
keywords_list = ["foo", "bar"]

df['Description'].str.split(expand = True).isin(keywords_list).any()
0 голосов
/ 15 мая 2018

Использование pandas.Series.str.contains

df['Description'].str.contains('|'.join(keywords_list))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...