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

Pandas中如何实现字符串严格匹配筛选DataFrame行?

严格筛选DataFrame中Group列值为'Male'的行

首先明确:df['Group'].eq('Male')本身就是严格相等匹配,理论上只会返回Group列值完全等于'Male'的行。如果你的结果包含了Male:Age 0-18这类行,大概率是以下两种情况:

  • 你实际执行的不是eq方法,而是误用到了模糊匹配(比如str.contains('Male'))
  • Group列的字符串存在看不见的空格/特殊字符,导致你看到的'Male'其实带有额外内容

针对严格匹配的需求,你可以用以下几种可靠方式实现:

  • 直接使用==运算符,效果和eq完全一致:

    df = df[df['Group'] == 'Male']
    
  • 先清理字符串首尾的空格(如果数据存在这类问题),再做匹配:

    # 去除字符串首尾的空格、制表符等空白字符
    df['Group'] = df['Group'].str.strip()
    # 执行严格筛选
    df = df[df['Group'] == 'Male']
    
  • 用query方法实现严格匹配:

    df = df.query("Group == 'Male'")
    

如果还是出现匹配错误,建议先排查Group列的实际值,确认是否有隐藏字符:

# 打印所有唯一值,查看真实内容
print(df['Group'].unique())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 04:02:04