Pandas中str.contains方法失效求助:DataFrame指定列搜索失败
解决DataFrame中搜索“...”无法匹配的问题
问题根源:当
regex=True时,...是正则表达式的特殊元字符,代表任意三个任意字符,而非字面意义的三个点,所以你的代码会匹配所有长度≥3的字符串,而非包含...的内容。解决方案1:关闭正则匹配(推荐)
直接设置regex=False,让str.contains按字面匹配字符串:res.loc[res.Description.str.contains(pat='...', regex=False)]解决方案2:转义正则元字符
如果必须结合其他正则规则使用,可以手动转义每个点,或者用re.escape()自动转义特殊字符:# 手动转义写法 res.loc[res.Description.str.contains(pat='\\.\\.\\.', regex=True)] # 用re.escape自动转义(更简洁) import re res.loc[res.Description.str.contains(pat=re.escape('...'), regex=True)]额外提示:如果
Description列存在缺失值(NaN),可以添加na=False参数避免运行报错:res.loc[res.Description.str.contains(pat='...', regex=False, na=False)]
内容的提问来源于stack exchange,提问作者Vinicius Corrêa
相关产品推荐
相关产品推荐

