首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用AND或or选项在多列数据框中搜索多个字符串

使用AND或or选项在多列数据框中搜索多个字符串
EN

Stack Overflow用户
提问于 2020-07-26 08:40:27
回答 2查看 48关注 0票数 2

我可以在每一列中进行单个单词搜索,但无法使用"and“"or”选项搜索用户提供的数量的字符串搜索

代码语言:javascript
运行
复制
   0     1    3   4     
0 [OH-] [Na+] NAN CCO 
                                              
1 [OH-] [Na+] CCO  Cl  

这个可以用

代码语言:javascript
运行
复制
search = 'CCO' 
df.loc[df.isin([search]).any(axis=1)].index.tolist()

对于多个搜索,我尝试过

代码语言:javascript
运行
复制
import re

terms = ['C1', 'CCO']
p = r'\b(?:{})\b'.format('|'.join(map(re.escape, terms)))
df[df['col'].str.contains(p)]

给了我KeyError: 'col'

预期输出

代码语言:javascript
运行
复制
Search='C1' AND '[NA+]

结果1

代码语言:javascript
运行
复制
Search='CCO' OR 'C1'

结果0 1

EN

Stack Overflow用户

发布于 2020-07-26 09:40:48

因为没有列名为col。试试这个:

代码语言:javascript
运行
复制
df[df.apply(lambda col: col.str.contains(p)).any(axis=1)]

col现在是lambda的输入参数的名称。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63094989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档