首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将浮点数圈成最小数,保持小数点数。

将浮点数圈成最小数,保持小数点数。
EN

Stack Overflow用户
提问于 2020-08-17 21:54:11
回答 2查看 205关注 0票数 2

我需要将一个列的四舍五入,浮动到小数点2位,但不需要将数据舍入最近的值。

我的数据:

代码语言:javascript
复制
df = pd.DataFrame({'numbers': [1.233,1.238,5.059,5.068, 8.556]})
df.head()
    numbers
0   1.233
1   1.238
2   5.059
3   5.068
4   8.556

预期输出:

代码语言:javascript
复制
    numbers
0   1.23
1   1.23
2   5.05
3   5.06
4   8.55

问题所在

我试过的每一件事都把数字舍入到最近的数字(0-4是0,5-9是加1到截断的小数位)

不起作用的例子

代码语言:javascript
复制
df[['numbers']].round(2)
#or df['numbers'].apply(lambda x: "%.2f" % x)

#output
    numbers
0   1.23
1   1.24
2   5.06
3   5.07
4   8.56
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-17 21:58:23

这更像是打包票

代码语言:javascript
复制
df.numbers*100//1/100
Out[186]: 
0    1.23
1    1.23
2    5.05
3    5.06
4    8.55
Name: numbers, dtype: float64
票数 2
EN

Stack Overflow用户

发布于 2020-08-17 22:21:16

试试这个,效果也很好

代码语言:javascript
复制
import pandas as pd
do = lambda x: float(str(x).split('.')[0] +'.' + str(x).split('.')[1][0:2])
df = pd.DataFrame({'numbers': list(map(do, [1.233,1.238,5.059,5.068, 8.556]))})
print(df.head())

输出

代码语言:javascript
复制
numbers
0     1.23
1     1.23
2     5.05
3     5.06
4     8.55
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63459150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档