Gay*_*hri 4 python numpy rounding python-2.7 pandas
有人可以解释一下我发生了什么,或者我错过了一些非常明显的东西?
import pandas as pd
df = pd.DataFrame([[0.0094909865]])
df = df.round(9)
print(df)
Run Code Online (Sandbox Code Playgroud)
这给了我0.009490986.
我期待圆形值0.009490987
有人可以帮我理解吗?我正在使用Pandas'0.20.3'
好问题.这是一个无证的怪癖.实际上,DataFrame.round用途numpy.around.它应该在pandas文档中提到.
将numpy.around()执行以下操作:
对于正好在舍入小数值之间的值,Numpy舍入到最接近的偶数值.因此1.5和2.5轮到2.0,-0.5和0.5轮到0.0等.
有关详细信息,请参阅参考.
from math import ceil, floor
import pandas as pd
df = pd.DataFrame([[0.0094909865]])
def float_round(num, places = 0, direction = floor):
return direction(num * (10**places)) / float(10**places)
print( float_round(df.values,9,ceil) )
print( float_round(df.values,9) )
print( float_round(1.1389182804 ,9) )
Run Code Online (Sandbox Code Playgroud)
0.009490987
0.009490986
1.13891828
Run Code Online (Sandbox Code Playgroud)