我可以在每一列中进行单个单词搜索,但无法使用"and“"or”选项搜索用户提供的数量的字符串搜索
0 1 3 4
0 [OH-] [Na+] NAN CCO
1 [OH-] [Na+] CCO Cl 这个可以用
search = 'CCO'
df.loc[df.isin([search]).any(axis=1)].index.tolist()对于多个搜索,我尝试过
import re
terms = ['C1', 'CCO']
p = r'\b(?:{})\b'.format('|'.join(map(re.escape, terms)))
df[df['col'].str.contains(p)]给了我KeyError: 'col'
预期输出
Search='C1' AND '[NA+]结果1
Search='CCO' OR 'C1'结果0 1
发布于 2020-07-26 09:40:48
因为没有列名为col。试试这个:
df[df.apply(lambda col: col.str.contains(p)).any(axis=1)]col现在是lambda的输入参数的名称。
https://stackoverflow.com/questions/63094989
复制相似问题