心若磐石|如何使用python进行正确的四舍五入?这个坑有点大( 二 )
我的解决方案
- 我根据我的精度要求 , 构建精度范围所需要保留的小数点的最后一位 , 通过这个数字是否为5 , 判断是否需要向上取整
- 举例来说 , 本案例中我只需要保留整数部分的数据 , 那么我只需要确定小数点后第一位是否是数字5就可以了
import pandas as pdimport numpy as npimport mathdf = pd.DataFrame({"除数": [1, 1, 1.5, 5, 7.5], "被除数": [2, 3, 1, 6, 3]})# 记录真实值df["真实值"] = df["除数"] / df["被除数"]# 记录整数部分df["辅助整数列"] = df["真实值"].apply(lambda x: math.modf(x)[1])# 记录小数部分,因为我的最后结果精度为只保留整数部分,所以我只需要保留一个小数点位进行判断是否需要进位操作df["辅助小数列"] = df["真实值"].apply(lambda x: str(math.modf(x)[0]).split(".")[1][0])# 小数点后的第一位是为5 , 则向上取整 , 不是5则调用原np.round就行了df["期望值修正"] = df.apply(lambda x: x.辅助整数列 + 1 if (x.辅助小数列 == "5") else np.round(x.真实值), axis=1)结果如下所示我是一名奋战在编程界的pythoner , 工作中既要和数据打交道 , 也要和erp系统 , web网站保持友好的沟通…… , 时不时的会分享一些提高效率的编程小技巧 , 在实际应用中遇到的问题以及解决方案 , 或者源码的阅读等等 , 欢迎大家一起来讨论!如果觉得写的还不错 , 欢迎点个关注点个赞 , 谢谢 。
推荐阅读
- 湖人队|扎心?一张图看湖人如何应对马赛克三分雨,神龟5米范围没人理他
- 搜狐新闻|准大学生数码三件套如何选?这些元气好物值得种草
- 想好好做医生的胖子|五十岁女性经常有周身无力和疼痛的困扰!该如何应对?医生告诉您
- 儿童饮食|秋冬季如何让宝宝爱上吃水果?稍微蒸一下美味翻倍,营养价值更高
- 队员|北极科考中“遭遇”北极熊,看科考队员如何与它们和谐相处
- 中国历史发展过程|中国历史发展过程!中国游戏外挂发展史:“辅助工具”是如何成长为“苍
- 金色年华录|都是男扮女装谈恋爱,《少女大人》比《女世子》如何?
- 上海市嘉定区人民政府网站|每年消耗3350吨蔬菜150吨肉,嘉定这家中央厨房如何践行“光盘行动”?
- 上海嘉定|如何让《民法典》走进群众心里?嘉定这些街镇和单位这样做
- 没蜡笔的小新|“整容脸”应该被鄙视吗?医生告诉你千篇一律的好看皮囊如何而来
