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

如何基于列字符串匹配规则筛选pandas DataFrame的行

你可以使用pandas提供的str.contains()字符串方法实现子串包含匹配,示例代码如下:

df.loc[df['name'].str.contains('Mary', na=False)]

说明

  • str.contains()默认支持正则匹配,如果你只需要普通的子串查找,不需要正则能力,可以额外加regex=False参数提升运行效率
  • 加na=False是为了处理name列存在空值(NaN)的场景:空值调用字符串方法默认会返回NaN,直接传入loc会触发报错,加na=False会把空值对应的行直接判定为不匹配过滤掉,如果你需要保留空值行,可以把这个参数改为na=True
  • 如果你的name列不是字符串类型,可以先做类型转换再匹配:
    df.loc[df['name'].astype(str).str.contains('Mary', na=False)]
    

常用扩展场景

如果需要不区分大小写匹配(同时命中mary/Mary/MARY等写法),可以加case=False参数:

df.loc[df['name'].str.contains('Mary', case=False, na=False)]

如果你需要的是匹配name以Mary开头/结尾的场景,可以直接换用更针对性的方法:

  • 匹配开头:df.loc[df['name'].str.startswith('Mary', na=False)]
  • 匹配结尾:df.loc[df['name'].str.endswith('Mary', na=False)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:45:05