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

如何使用Pandas.DataFrame的replace()方法实现精确匹配的字符串替换

问题根源

你打印的列唯一值里可以看到,每个值的首尾本身就自带了一层单引号,你要匹配的0-4实际存储的完整字符串是"'0-4'",之前所有写法都没有匹配到外层的单引号,所以才会失效或者误替换。

可行解决方案

方案1:直接匹配完整值(推荐,性能最高)

Series.replace默认是全值匹配,你只要把完整的待匹配值写对即可:

df['tumor-size'] = df['tumor-size'].replace("'0-4'", "'00-04'")

方案2:正则精确匹配全字符串

如果要用str.replace,需要用^和$限定匹配整个字符串,同时带上外层的单引号:

df['tumor-size'] = df['tumor-size'].str.replace(r"^'0-4'$", "'00-04'", regex=True)

方案3:先清理多余单引号再处理(适合后续还要对该列做其他计算的场景)

你也可以先把所有值外层多余的单引号去掉,后续处理会更方便:

# 去掉所有值首尾的单引号
df['tumor-size'] = df['tumor-size'].str.strip("'")
# 替换目标值
df['tumor-size'] = df['tumor-size'].replace('0-4', '00-04')
# 如果需要保留原来的单引号格式,可以执行下面这行加回
df['tumor-size'] = "'" + df['tumor-size'] + "'"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:15:03