python-3.x - 熊猫系列四舍五入中位数和平均值
问题描述
我有一个series
,
s = pd.Series([1.115,2.337,3.225])
s.mean()
2.2256666666666667
我想知道如何四舍五入mean()
和median()
值,这样如果小数点后第 3 位的数字是 5,它应该向下舍入,所以结果应该是2.22
而不是2.2256666666666667
.
解决方案
numpy.around
将四舍五入到最近的偶数:
>>> 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
推荐阅读
- angular - 不同设备上的 Firebase 电子邮件链接登录
- angular - 谷歌图表时间线更改时间语言
- python-3.x - def boo(list_products) 不能正常工作,任何让它工作的提示
- vue.js - 如何将中间件分配给特定的路由组?
- java - 由于绑定而加载 FXML 时出现 IndexOutOfBoundsException
- python-3.x - 如何使用 NLTK 从段落中删除重复的句子?
- javascript - 如何在图片中嵌入文字?
- javascript - 如何用 Javascript 解决这个问题?
- visual-studio-code - VSCODE 上的 Pascal 扩展(pascal 自动缩进)
- ios - 以编程方式更改键盘输入类型(Swift)