Python Pandas-如果列包含列表中的任何值,而不是所有值,则使用isin返回

Python Pandas-如果列包含列表中的任何值,而不是所有值,则使用isin返回,python,pandas,Python,Pandas,很抱歉问了一个基本的问题,python/pandas还不太熟悉 我试图从数据库中创建一个列,该列返回True或False,以判断另一列是否包含字符串列表中的任何(不是全部)字符串。当前我的代码如下所示: keywords_list = ["foo, bar, ..etc] df['relevant'] = df['Description'].isin(keywords_list) 我知道我的“Description”列包含列表中的一些值,但它返回的是false。我看过类似的stackover

很抱歉问了一个基本的问题,python/pandas还不太熟悉

我试图从数据库中创建一个列,该列返回True或False,以判断另一列是否包含字符串列表中的任何(不是全部)字符串。当前我的代码如下所示:

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

df['relevant'] = df['Description'].isin(keywords_list)
我知道我的“Description”列包含列表中的一些值,但它返回的是false。我看过类似的stackoverflow问题(见下文),它们都说要做我正在做的事情。但是pandas文档(也在下面)说,isin只有在包含列表中的所有值时才起作用。如果列包含列表中的任何值,是否可以使用返回的函数?请帮忙


使用
pandas.Series.str.contains

df['Description'].str.contains('|'.join(keywords_list))

您可能需要使用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(1)

0     True
1     True
2    False
3     True

列描述是什么样子的?这非常有效,感谢您提供的高效解决方案!您的代码失败:
temp_df=pd.DataFrame({“水果”:[“苹果”、“苹果芒果”、“木瓜”、“橙子”、“西瓜”、“菠萝芒果”]})filter1=temp_df[“水果”].str.split(expand=True)。isin([“苹果”、“芒果”)。any()print(filter1)
给出一系列不相等的结果length@Hayat,谢谢你指出。DataFrame.any()应该位于轴1上,而不是默认的轴0上。感谢您的验证。请随意投票评论。如果有用的话