python 如何使用正则表达式强制小数点后两位数?

wbrvyc0a  于 2023-02-28  发布在  Python
关注(0)|答案(1)|浏览(168)

我有一个dataframe,它的值如下:

propvalue 
3000.2343
4000.4334554

该列是字符串(str)类型。
怎么能在小数点后只留下两位小数呢?
期望:

propvalue 
3000.23
4000.43

我研究过,似乎是这样的:

df['propvalue'] = df['propvalue'].replace('\..*','',regex=True)

但是上面删除了点之后的所有内容。我需要留下两位数。

8i9zcol2

8i9zcol21#

试试这个:

df['propvalue'] = df['propvalue'].astype(float).round(2)

使用Regex的其他解决方案:

import re

df['propvalue'] = df['propvalue'].apply(lambda x: round(float(re.findall('\d+\.\d+', x)[0]), 2))

相关问题