pandas如何筛选字符串列中两个关键词连续相邻出现的行
问题根因
原代码是分别判断credit和card两个独立关键词是否存在,不限制二者的位置关系,因此只要消息中同时出现这两个词就会被命中,自然会匹配到两个关键词分开出现的第一条无效消息。
修复方案
直接在str.contains()方法中传入完整的连续词组credit card即可,还可以根据实际场景选择匹配规则:
- 基础精准匹配:仅命中完全小写的连续
credit card词组
df[df['message'].str.contains('credit card')]
- 忽略大小写匹配:适配
Credit Card、CREDIT CARD等大小写混合的写法
df[df['message'].str.contains('credit card', case=False)]
- 兼容多空白字符匹配:适配两个词中间存在多个空格、制表符等空白符号的场景
df[df['message'].str.contains(r'credit\s+card', case=False)]
内容的提问来源于stack exchange,提问作者Abhishek P
相关产品推荐
相关产品推荐

