Python 使用正则表达式将数字中的句点(小数点)替换为大熊猫中的逗号
我正在使用Python和Pandas尝试用逗号替换列中数字的所有小数点,因此我当前的尝试是:Python 使用正则表达式将数字中的句点(小数点)替换为大熊猫中的逗号,python,regex,pandas,Python,Regex,Pandas,我正在使用Python和Pandas尝试用逗号替换列中数字的所有小数点,因此我当前的尝试是: s = pandas.Series([234.00,423.00,536.56]) s.replace(to_replace="[^0-9]*\.[0-9]*$",value=r"\,",regex=True) 但是它不起作用,而且我不太擅长正则表达式,期望的输出是: new series 234,00 423,00 536,56 这里有几件事需要注意- 您在一列float上调用replac
s = pandas.Series([234.00,423.00,536.56])
s.replace(to_replace="[^0-9]*\.[0-9]*$",value=r"\,",regex=True)
但是它不起作用,而且我不太擅长正则表达式,期望的输出是:
new series
234,00
423,00
536,56
这里有几件事需要注意-
[^0-9]
,因为^
在字符类中执行求反操作(将查找任何非数字的内容)str.format
将对您有所帮助。然后,调用str.replace
s.apply('{:.2f}'.format).str.replace('\.', ',')
0 234,00
1 423,00
2 536,56
dtype: object
请记住,以这种格式保存数据实际上在计算上没有任何用途。
s.astype(str).str.replace(“\.”,“,”)
?您知道这将使它们成为字符串,因此您无法再使用它们进行操作,对吗?您的正则表达式不正确<代码>[^0-9]将匹配任何非数字的内容。此外,请注意,replace
甚至不起作用,因为您正在对一列浮点数调用replace(replace正在查找字符串)。