Pandas数据列字符串替换问题:str.replace方法未生效
解决Pandas中str.replace清理薪资列未生效的问题
核心问题
执行df['Salary Estimate'].str.replace(' (Glassdoor est.)', '',regex=True)后原数据没变化,本质是两个原因:
- 未将替换后的结果赋值回原DataFrame列,str.replace默认返回新Series,不会修改原数据
- 正则表达式中的
()是特殊分组符号,直接写入会导致匹配失效
可行解决方案
方案1:关闭正则模式,直接匹配字符串
无需处理正则特殊字符,直接匹配目标文本:
df['Salary Estimate'] = df['Salary Estimate'].str.replace(' (Glassdoor est.)', '', regex=False)
方案2:转义正则特殊字符
若需保留正则模式,把括号转义为普通字符:
df['Salary Estimate'] = df['Salary Estimate'].str.replace('\(Glassdoor est.\)', '', regex=True)
进阶处理(适配格式差异)
如果部分行的空格数量不一致,用\s*匹配任意空格:
df['Salary Estimate'] = df['Salary Estimate'].str.replace('\s*\(Glassdoor est.\)', '', regex=True)
效果验证
处理后:
- 原内容
$53K-$91K (Glassdoor est.)会变为$53K-$91K - 原内容
-1保持不变
内容的提问来源于stack exchange,提问作者Shubh Pundir
相关产品推荐
相关产品推荐

