You need to enable JavaScript to run this app. pandas使用loc实现无正则字符串部分匹配 解决精确匹配失效问题
优惠活动
大模型
产品
解决方案
定价
更多

pandas使用loc实现无正则字符串部分匹配 解决精确匹配失效问题

实现方案

你当前代码无返回结果的原因是使用了精确等值匹配,仅会筛选出name字段完全等于Hello的行,无法命中包含该子串的长字符串。
要满足「通过loc完成不依赖正则的字符串部分匹配」的需求,可直接使用pandas字符串访问器提供的contains方法,通过regex=False参数关闭正则解析能力,实现纯子串包含判断。

修改后的完整代码

import pandas as pd


data = {'name': ['HelloWorld', 'ByeWorld'],
        'physics': [22, 33],
        'chemistry': [44, 55]}

a = pd.DataFrame(data)

# 核心修改:传入regex=False,关闭正则匹配,做纯字符串包含判断
b = a.loc[a['name'].str.contains('Hello', regex=False)]

print(b)

关键说明

  • 必须显式指定regex=False,否则contains方法默认会将传入的匹配串作为正则表达式解析,不符合不依赖正则的要求
  • 该匹配默认大小写敏感,如果需要忽略大小写匹配,可额外传入case=False参数,依然不会用到正则解析能力
  • 生成的布尔筛选数组可以直接传入.loc的行位置参数,完全兼容你原有的代码逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 06:06:03