如何在python中将小数点后的数字四舍五入

时间:2019-04-16 03:57:36

标签: python-3.x pandas numpy

我正在使用numpy round函数,它在所有方面都能正常工作,但是当有15.65时,它应该给出15.7,但是它给出15.6。还有其他方法吗?因为我读到很多线程numpy都有这个问题。

df1['result']=df1['a'].apply(lambda x: np.round(x, decimals=1))

3 个答案:

答案 0 :(得分:1)

有一个技巧可以将少量数据添加到数据中并取整。但是您需要确保增量小于分辨率。

df = pd.Series(np.arange(0,100,0.05))

df.round(1).head()    
# 0    0.0
# 1    0.0
# 2    0.1
# 3    0.2
# 4    0.2
# dtype: float64

(df+1e-10).round(1).head()    
# 0    0.0
# 1    0.1
# 2    0.1
# 3    0.2
# 4    0.2
# dtype: float64

答案 1 :(得分:1)

Python内置的round()函数将四舍五入为给定的位数并返回浮点数,如果没有提供四舍五入的位数,则会将数字四舍五入为最接近的整数。

array = [15.65, 15.64, 15.61, 15, 15.94, 15.96]
print([round(i,1) for i in array]) 

它提供输出[15.7、15.6、15.6、15、15.9、16.0]

答案 2 :(得分:0)

使用round() python内置函数

In [1]: round(15.65, 1)
Out[1]: 15.7

在您的情况下:

df1['result']=df1['a'].apply(lambda x: round(x, 1))