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

为何pandas的str.replace无法替换DataFrame中带括号的指定子字符串

问题原因

pandas 的 Series.str.replace() 方法默认启用正则匹配模式,你需要替换的字符串中包含的(、)属于正则表达式的元字符,会被识别为分组标记,而非普通的字面量字符。因此Conference Call - F(2).rtf、Final(2).rtf这两个带括号的字符串无法被正常匹配,只有无特殊元字符的Conference Call - Final.rtf能匹配成功。

解决方法

你可以选择以下任意一种方案修复问题:

  • 方案1:先转义所有待替换子串的正则元字符,再拼接为匹配模式,适合待替换词数量较多的场景
import re
remove_words=['Conference Call - Final.rtf','Conference Call - F(2).rtf','Final(2).rtf']
# 批量转义每个待匹配字符串中的正则特殊字符
escaped_words = [re.escape(word) for word in remove_words]
pat = '|'.join(escaped_words)
df['title'] = df['conference_name'].str.replace(pat, '', regex=True)
  • 方案2:逐个做字面量替换,无需处理正则元字符,适合待替换词数量较少的场景
remove_words=['Conference Call - Final.rtf','Conference Call - F(2).rtf','Final(2).rtf']
df['title'] = df['conference_name']
for word in remove_words:
    # regex=False 开启字面量匹配,所有字符都会按普通内容识别
    df['title'] = df['title'].str.replace(word, '', regex=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:57:03