我有一个数字的pandas数据帧列,它们之间都有一个短划线,例如:
" 123-045"
我想知道无论如何要删除破折号后的零,以使上面的例子为
" 123-45"
?是否可以将过程条件应用于整个列?
我使用for循环来检查破折号后面的每个数字,使用python字符串函数。但是行数很大,for循环需要永远。
答案 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("-.", "-"))