熊猫系列取整中值和均值

时间:2018-07-12 13:50:21

标签: python-3.x pandas mean series median

我有一个series

s = pd.Series([1.115,2.337,3.225])
s.mean()

2.2256666666666667

我想知道如何对mean()median()值进行四舍五入,以便如果小数点后三位的数字为5,则应四舍五入,因此结果应为{{1} },而不是2.22

1 个答案:

答案 0 :(得分:1)

numpy.around将舍入到Nearest Even

>>> s = pd.Series([1.115,2.337,3.225])
>>> s.mean()
2.2256666666666667
>>> np.around(s.mean(), decimals=4)
2.2257
>>> np.around(s.mean(), decimals=3)
2.226
>>> np.around(s.mean(), decimals=2)
2.23

...但是:

  

如果小数点后第三位的数字为5,则应四舍五入为2.22,而不是2.2256666666666667。

这不仅仅是四舍五入;只有截断到3个小数位然后四舍五入时,您才获得2.22:

>>> (np.trunc([s.mean() * 1000.]) / 1000.)[0]
2.225
>>> (np.around(np.trunc([s.mean() * 1000.]) / 1000., decimals=2))[0]
2.22