我在pandas DataFrame中有一列,内容如下
“percent: 71.3456789%”
我如何清理它,使其与读为“70%”
的列保持一致
我尝试如下使用replace“ df.str.replace("width:95.612899266253%;", "95.612899266253%").
我得到的错误是语法错误
我该如何解决
答案 0 :(得分:1)
您可以使用正则表达式从字符串中获取数字值,然后对此进行四舍五入。
我使用的正则表达式分为三组:
.str.replace
然后需要传递regex=True
参数。
import re
df = pd.DataFrame(["percent: 71.3456789%"],columns=["pct"])
>>> df
pct
0 percent: 71.3456789%
repl = lambda m: m.groups(0)[0] + str(round(float(m.groups(0)[1]),0)) + m.groups(0)[2]
simple_decimal = re.compile(r'(percent: )(\d*.\d+)(%)')
>>> df.pct.str.replace(simple_decimal,repl,regex=True)
0 percent: 71.0%