pandas使用str.replace无法替换(Do Not Use)前缀问题求助
问题原因
- 你开启了
regex=True正则匹配模式,正则语法中(和)是表示分组的特殊元字符,不会直接匹配字面意义上的括号,导致你的匹配规则无法命中目标前缀。 - 你的匹配串中括号后写了2个空格,而示例给出的保险名称格式里
(Do Not Use)后面只有1个空格,空格数量不匹配也会导致替换失效。
解决方案
你可以选择任意一种方式修正:
- 关闭正则匹配,直接做字面量替换,操作最简单:
df["InsuranceNames"] = df["InsuranceNames"].str.replace('(Do Not Use) ', '', regex=False)
- 如果需要保留正则匹配模式,对括号做转义处理,同时匹配正确的空格数量即可:
# 加^可以确保只替换开头的前缀,避免误替换字符串中间出现的对应内容 df["InsuranceNames"] = df["InsuranceNames"].str.replace(r'^\(Do Not Use\) ', '', regex=True)
内容的提问来源于stack exchange,提问作者Bob
相关产品推荐
相关产品推荐

