首页 > 解决方案 > 在数据框上查找特定单词

问题描述

当我在数据框中查找一个单词时,它会显示包含这些字母的每个条目,但我真的希望它显示那个特定的单词。你能帮我吗?

这是和示例:

import pandas as pd
d = {'col1': ['ROL', 'ROVER','ROL','ROLLER','ROL','TROLLER','rol','rolter','nan'] ,'col2': [1, 2,3,4,5,6,7,9,10]}
df = pd.DataFrame(data=d)     
ROL = df[df['col1'].fillna(0).str.contains("ROL|rol",na=False)] 

输出是这样的

当前输出图像

但我真正想要的是没有这些条目的东西

所需的输出图像

标签: pythonpandasdataframe

解决方案


您的代码的问题是您str.contains("ROL|rol")匹配除ROVER. 例如,"ROLLER"还包含"ROL".

试试这个用法str.contains

import re
ids = df.col1.str.contains('rol$|rol-|rol ', flags = re.IGNORECASE, regex = True, na = False)

然后过滤:

df[ids]

给出:

Out[115]: 
       col1  col2
0       ROL     1
2   ROL- 33     3
4    ROL -2     5
6  rol nº12     7

推荐阅读