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

如何通过if/else语句在Pandas列中匹配特定字符串与组合词?

嘿,我来帮你理清楚这两个关于字符串匹配的疑问:

字符串匹配问题解答

1. 如何正确匹配“data science”组合词?

你写的两种写法都没法实现预期效果:

  • elif 'Data-science' in chars: 只会匹配带连字符的字符串(比如“Data-science入门指南”),对空格分隔的“Data science”完全不生效。
  • elif 'Data|science' in chars: 这里的|会被当作普通字符处理,只会匹配包含“Data|science”这个字面量的字符串(比如“推荐Data|science学习资源”),根本不是你要的空格分隔组合词。

正确写法分两种场景:

  • 如果你要精确匹配“data science”这个完整短语(包括中间的空格),直接写:
    elif 'data science' in chars:
        return 'Data Science'
    
  • 如果你想匹配同时包含“Data”和“science”的字符串(不管中间是什么分隔符),in操作符就不够用了,得借助正则表达式:
    import re
    elif re.search(r'Data.*science|science.*Data', chars):
        return 'Data Science'
    
    (不过从你的需求描述来看,应该是第一种精确匹配短语的场景)

2. 匹配是否区分大小写?

默认情况下,Python的in操作符严格区分大小写!比如:

  • 'Data' in 'data analysis' → 返回False
  • 'data' in 'Data Science' → 也返回False

如果想忽略大小写匹配,建议把字符串统一转成小写(或大写)后再判断,这样兼容性更强:

def char_matching(chars):
    chars_lower = chars.lower()
    if 'software' in chars_lower:
        return 'Software development'
    elif 'data science' in chars_lower:
        return 'Data Science'

这样不管原字符串是“Data Science”“data science”还是“DATA SCIENCE”,都能成功匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:47:35