You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python pandas判断字符串是否包含全部指定子串 支持AND/OR逻辑查询

文本多匹配需求实现方案

OR匹配(任意子串存在即返回True)

你当前写的代码本身就满足OR逻辑,只要文本中包含任意一个指定子串就返回True:

df['D'] = df['CT'].str.contains("X|Y|Z|A", case = False)

AND匹配(所有子串都存在才返回True)

要实现全包含的逻辑,可以用以下两种写法:

  • 写法1:子串数量少的场景,直接拼接条件
df['D'] = (df['CT'].str.contains("X", case=False) 
           & df['CT'].str.contains("Y", case=False)
           & df['CT'].str.contains("Z", case=False)
           & df['CT'].str.contains("A", case=False))
  • 写法2:子串数量多或需要动态传参的场景,用通用封装
# 定义要匹配的关键词列表
required_keywords = ["X", "Y", "Z", "A"]
# 逐个判断所有关键词是否都存在于文本中
df['D'] = df['CT'].apply(lambda s: all(keyword.lower() in s.lower() for keyword in required_keywords))

分类需求实现示例

针对你提到的同时匹配Issue、internet、speed后归类到指定分组的需求,实现代码如下:

def classify_text(text):
    text_lower = text.lower()
    # 匹配互联网速度问题分组
    if all(k in text_lower for k in ["issue", "internet", "speed"]):
        return "internet speed issue"
    # 可在此处扩展其他分组的判断逻辑
    else:
        return "其他"

df['group'] = df['CT'].apply(classify_text)

内容的提问来源于stack exchange,提问作者DarshanC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:15:04