正则表达式删除破折号后的0

时间:2018-06-16 05:23:17

标签: python regex

我有一个数字的pandas数据帧列,它们之间都有一个短划线,例如:

  

" 123-045"

我想知道无论如何要删除破折号后的零,以使上面的例子为

  

" 123-45"

?是否可以将过程条件应用于整个列?

我使用for循环来检查破折号后面的每个数字,使用python字符串函数。但是行数很大,for循环需要永远。

2 个答案:

答案 0 :(得分:2)

尝试Series.str.replace方法,使用正则表达式(?<=-)0+删除0之后的-

df = pd.DataFrame({'a': ["123-045"]})

df
#         a
#0  123-045

df.a.str.replace('(?<=-)0+', '')
#0    123-45
#Name: a, dtype: object

答案 1 :(得分:1)

如果str是你的字符串,那么就可以这么简单:

str = re.sub("-.", "-", str)

或者使用pandas dataframe:

df = pd.DataFrame({'key': ["assa-dssd-sd"]})
print (df.key.str.replace("-.", "-"))