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

当文本包含'.'时如何实现严格子串搜索以过滤pandas DataFrame行

问题原因

pandas.Series.str.contains() 方法默认开启正则表达式匹配规则,正则语法中.代表匹配任意单个字符,因此你写的匹配规则'bot.'会命中所有bot后紧跟任意字符的内容:不仅能匹配bot.01、bot.xx这类目标内容,也会匹配botris(bot后是r)、botmax(bot后是m)这类需要保留的内容,最终导致误删。

解决方法

你可以二选一以下任意方案修改代码:

  • 方案1:保留正则匹配模式,对英文句号做转义,让它仅匹配字面意义的.
    示例代码:

    df = df[~df['column'].str.contains(r'bot\.')]
    

    其中r标记原始字符串避免Python字符串转义冲突,\.在正则语法中专门用来匹配字面量的英文句号。

  • 方案2:关闭正则匹配,直接做纯文本子串匹配
    给str.contains传入regex=False参数,此时传入的匹配内容会被当作普通文本处理,无需额外转义:

    df = df[~df['column'].str.contains('bot.', regex=False)]
    

注意:你原代码中的列名拼写为coulmn,大概率是笔误,实际使用请替换为你数据表真实的列名。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:48:00