Trouble with str.replace



这就是我遇到的问题。

数据框中的原始列包含保险名称,如"(Do Not Use) Healthfirst",该列的名称为"InsuranceNames"。我使用以下代码尝试用空白替换"(Do Not Use) "部分,只留下保险名称:

df["InsuranceNames"] = df["InsuranceNames"].str.replace('(Do Not Use)  ','',regex=True) 

但是当我把它导出为csv时,出现了"请勿使用"还在那里。为什么会发生这种情况?如果你能帮助我,我将不胜感激。

你可能有以下两个问题之一,或者两者都有。

  1. 当你正在寻找一个精确的字符串匹配,你不应该使用正则表达式,所以你可以放弃regex=True
  2. 你在'(Do Not Use) '的间距上可能是错误的。由于'(Do Not Use) '不在字符串中的两个单词之间,您将获得更可靠的结果,替换没有空格的'(Do Not Use)',然后使用.strip()从字符串的末端删除额外的空格。

试试这个:

df["InsuranceNames"]=df["InsuranceNames"].apply(lambda x: x.replace('(Do Not Use)','').strip())

例子:

输入:

df=pd.DataFrame({"InsuranceNames":['(Do Not Use) Healthfirst', '(Do Not Use) Foobar','  (Do Not Use) Aflac','(Do Not Use)  Foo  ', '(Do Not Use)     Bar']})
p>
InsuranceNames
0   (Do Not Use) Healthfirst
1   (Do Not Use) Foobar
2   (Do Not Use) Aflac
3   (Do Not Use) Foo
4   (Do Not Use) Bar

:

df["InsuranceNames"]=df["InsuranceNames"].apply(lambda x: x.replace('(Do Not Use)','').strip())

输出df:

InsuranceNames
0   Healthfirst
1   Foobar
2   Aflac
3   Foo
4   Bar

相关内容

  • 没有找到相关文章

最新更新