【发布时间】:2018-03-07 19:02:40
【问题描述】:
有没有办法一次性从 python 字符串中删除一组特定的字符?
str='23.889,45 €'
我想删除点 '.'和'€'符号,但我不想像str.replace('€','').replace('.',''), whereby replacing the characters with white space那样使用replace()函数两次。
在 SAS 中有一个函数compress,它接受要删除的字符列表,并且在应用该函数时,SAS 字符串中的所有字符都将被删除。例如:compress(str,'.€') 将返回 str as 23889,45。
Python中也有对应的函数吗?
【问题讨论】:
-
使用正则表达式:
df['col'].str.replace(r'€|\.',"", regex=True, inplace=True) -
您确实意识到您正在谈论的
compress函数以相同的方式处理它?? -
@mrid 是的,确实如此。我只是再次检查以确保这一点。
compress(str,'.€')确实会删除点和欧元符号的所有实例,我们最终将获得的字符串将失去这些上述字符。 -
@Wiktor Stribiżew 您的代码运行良好。非常感谢。但是,我仍然很难理解语法。另外,请将此代码放在答案中,以便其他人可以从中受益。非常感谢。
-
@WiktorStribiżew 有没有办法也可以指定替换?我的意思是在这种情况下
€被替换为$和,与.?因此,总共从 '23.889,45 €' 我们得到 '23889.45 $'
标签: python string pandas replace