如何用pandas的str.contains匹配DataFrame中含独立"And"的行?
筛选Pandas中包含独立字符串"And"的行
问题背景
现有DataFrame:
import pandas as pd df = pd.DataFrame({"name": ["Andrew", "Jen And Jess","Gin And"]})
需要筛选name列中包含**独立字符串"And"**的行。当前使用df[df["name"].str.contains('AND',na=False)]会误匹配"Andrew"这类包含"And"子串的行,不符合需求。
预期输出:
name 1 Jen And Jess 2 Gin And
解决方案
要匹配独立的单词,需借助正则表达式的单词边界\b,它会匹配单词与非单词字符的边界,确保"And"是独立存在的单词而非子串。
精准匹配大小写严格的"And"
df[df["name"].str.contains(r'\bAnd\b', na=False)]
不区分大小写匹配(支持And/AND/and等变体)
如果需要兼容不同大小写的"And",可以使用flags参数指定忽略大小写:
import re df[df["name"].str.contains(r'\band\b', na=False, flags=re.IGNORECASE)]
以上代码均可得到符合预期的筛选结果。
内容的提问来源于stack exchange,提问作者Jyc
相关产品推荐
相关产品推荐

