这就是我遇到的问题。
数据框中的原始列包含保险名称,如"(Do Not Use) Healthfirst"
,该列的名称为"InsuranceNames"
。我使用以下代码尝试用空白替换"(Do Not Use) "
部分,只留下保险名称:
df["InsuranceNames"] = df["InsuranceNames"].str.replace('(Do Not Use) ','',regex=True)
但是当我把它导出为csv时,出现了"请勿使用"还在那里。为什么会发生这种情况?如果你能帮助我,我将不胜感激。
你可能有以下两个问题之一,或者两者都有。
- 当你正在寻找一个精确的字符串匹配,你不应该使用正则表达式,所以你可以放弃
regex=True
。 - 你在
'(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