使用.isin和str.contains检查Pandas中的DataFrame列

时间:2019-04-17 17:39:27

标签: python string pandas contains

我想根据其值是否包含(即具有子字符串)字符串列表中的任何字符串来返回列中的值。

例如,

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'值)-老实说,似乎有更好的方法。

0 个答案:

没有答案