当我使用panda数据帧时,np.floor和np.trunc出现了一些奇怪的行为。
这是我所期望的行为,它正在起作用:
np.floor(30.000)
Out[133]: 30.0
但你可以看到,当我做一个系列时,它会错误地处理"浮动整数",并将它们四舍五入一。我使用了一个临时修复程序,将0.00001添加到我的整个数据帧中,在我的情况下,这是可以的,因为我要四舍五入到的级别,但我想知道发生了什么以及如何正确执行。
编辑:我特别需要四舍五入到零的功能。
sample_series
2020-01-01 00:00:00 26.750
2020-01-01 01:00:00 27.500
2020-01-01 02:00:00 28.250
2020-01-01 03:00:00 30.000
2020-01-01 04:00:00 30.625
2020-01-01 05:00:00 31.000
2020-01-01 06:00:00 33.375
2020-01-01 07:00:00 33.750
2020-01-01 08:00:00 34.000
In: sample_series.apply(np.float)
Out:
2020-01-01 00:00:00 26.0
2020-01-01 01:00:00 27.0
2020-01-01 02:00:00 28.0
2020-01-01 03:00:00 29.0
2020-01-01 04:00:00 30.0
2020-01-01 05:00:00 30.0
2020-01-01 06:00:00 33.0
2020-01-01 07:00:00 33.0
2020-01-01 08:00:00 33.0
2020-01-01 09:00:00 33.0
2020-01-01 10:00:00 34.0
您可以使用around()
函数
np.around([0.37, 1.64], decimals=1)
array([0.4, 1.6])