Проверка столбца DataFrame в Pandas с использованием .isin и str.contains - PullRequest
0 голосов
/ 17 апреля 2019

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

Например,

values = ['dog', 'cat', 'ant']

df = pd.DataFrame({'col1': ['dog', 'cat', 'fox', 'monkey', 'antelope'], 'col2': [3, 4, 1, 6, 9]})

Я знаю, что если я хочу сравнить с одной подстрокой, я могу:

df[df['col1'].str.contains('dog')

И если бы я знал полные значения (в отличие от просто подстроки), я мог бы сделать:

df.loc[df['col1'].isin(values)]

Однако я не уверен, как объединить две функции.

Я думал, что смогу зациклить.

def func(data):
    for x in values:
        if x in data:
           return True
    return False

df['include'] = df.apply(func)

Но это не работает (мой столбец простоэто значения 'NaN') - и, честно говоря, похоже, что есть лучший способ.

...