如何用Pandas的str.contains筛选'lock'并排除类似'clock'的词汇
解决方案
你可以通过正则表达式精准匹配符合要求的字符串,同时排除clock这类包含lock但不符合位置要求的词汇。直接使用带正则的str.contains即可实现:
Result[Results['Subject'].str.contains(r'^lock|\slock\s|\slock$', regex=True)]
正则规则说明:
^lock:匹配以'lock'开头的字符串(比如locksmith),不会匹配clock因为它开头是c\slock\s:匹配**包含' lock '(前后均有空白字符)**的字符串(比如door lock key)\slock$:匹配以' lock'(前面带空白字符)结尾的字符串(比如security lock)- 三个规则用
|分隔,满足任意一个条件的字符串都会被筛选出来
如果只需要严格匹配空格(而非任意空白字符),可以把\s换成空格:
Result[Results['Subject'].str.contains(r'^lock| lock | lock$', regex=True)]
内容的提问来源于stack exchange,提问作者F. Valle
相关产品推荐
相关产品推荐

