【问题标题】:pandas series round down median and mean values熊猫系列四舍五入中位数和平均值
【发布时间】:2018-12-20 18:57:35
【问题描述】:

我有一个series,

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

2.2256666666666667

我想知道如何四舍五入 mean() 和 median() 值,这样如果小数点后第三位的数字是 5,它应该向下舍入,所以结果应该是 2.22 而不是 2.2256666666666667 .

【问题讨论】:

  • 为什么要四舍五入?用于打印目的?您可以为此使用熊猫设置。或者你想输出四舍五入的值?你有没有努力去查这个?这是python的基础。
  • @AntonvBR 输出四舍五入的值
  • 那么你可以使用 Python 的 round 函数:round(s.mean(), 2)... 等一下,你想把它四舍五入吗? ...嗯,我猜:import math 和 math.floor(s.mean()*100)/100

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


【解决方案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,才能得到 2.22:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    相关资源
    最近更新 更多