python - 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中的字符串列表过滤行
解决方案
利用pandas.Series.str.contains
df['Description'].str.contains('|'.join(keywords_list))
推荐阅读
- python - tkinter 按钮仅在单词在文本框 python 中时可见
- json - 如何在自适应卡片模板中使用 $when 来找出传入数据有效负载的长度并删除输入块
- python - 如何停在函数外的一行
- java - 为什么使用“multipart/form-data”上传文件时经常出现异常?
- docker - docker 卷与挂载点 docker 卷有什么区别
- gradle - Gradle:处理依赖项更改
- eclipse - Eclipse:自动保存和构建不起作用
- python - 在对象列表中适当更新对象属性的有效方法
- c - 有没有办法询问用户他们想要多少有效数字?
- javascript - Firebase Firestore 的内容未在我的屏幕上呈现