首页 > 解决方案 > Pandas - 如果列包含列表中的任何值,而不是全部,则使用 isin 返回

问题描述

抱歉,对于 python/pandas 来说,这是一个基本的问题。

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

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

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

我知道我的“描述”列包含列表中的一些值,但它全部返回为假。我看过类似的stackoverflow问题(见下文),他们都说要做我正在做的事情。但是 pandas 文档(也在下面)说 isin 只有在它包含列表中的所有值时才有效。如果列包含列表中的任何值,我可以使用返回的函数吗?请帮忙!

根据 Pandas https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.isin.html中的字符串列表过滤行

标签: pythonpandas

解决方案


利用pandas.Series.str.contains

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

推荐阅读