百分比计算保留2位小数之后总数不为1
前言:用Python做大数据统计时遇到的小问题的解决方法的记录
###工作经验统计(data为清洗后的dataframe)
exp_count = data['count'].groupby(data['experience']).sum()
1. 原本的代码
#占比统计:百分比保留2位小数
exp_sum = exp_count.sum() #求和
exp_per = (exp_count/exp_sum).apply(lambda x:format(x,'0.2%'))
#检查求和是否为1
exp_per = exp_per.str.strip('%').astype(float)/100
per_sum = exp_per.sum()
#维度标准指定顺序排列
experience_list_x = ['无经验','1-3年','3-5年','5-10年','10年以上']
experience_dict = dict(exp_per)
experience_list_y = []
for i in range(len(experience_list_x)):experience_list_y.append(experience_dict.get(experience_list_x[i],0))
2. 处理的代码
#统计占比:浮点数保留4位小数
exp_per = (exp_count/exp_sum).apply(lambda x:round(x,4))#维度标准指定顺序排列
experience_list_x = ['无经验','1-3年','3-5年','5-10年','10年以上']
experience_dict = dict(exp_per)
experience_list_y = []
for i in range(len(experience_list_x)):experience_list_y.append(experience_dict.get(experience_list_x[i],0))#检查求和
per_sum = round(sum(experience_list_y),4)
#处理
if per_sum != 1:index0 = experience_list_y.index(max(experience_list_y))experience_list_y[index0] = experience_list_y[index0] + (1 - per_sum)
print(round(sum(experience_list_y),4))
experience_list_y = [format(i,'0.2%') for i in experience_list_y]
百分比计算保留2位小数之后总数不为1相关推荐
- JS 两数相除取百分比%并保留两位小数
代码如下: //两数相除取百分比%并保留两位小数 function Percentage(number1, number2) { // 小数点后两位百分比return (Math.round(numb ...
- PHP计算百分比,保留指定位小数,保留整数
$total = '100'; //总数 $single = '43'; //单个数 echo round($single /$total *100,2)."%<br />&qu ...
- Bigdecimal BigDeciamal元转换为万元,转换为百分数,字符串与数值互转,整数/浮点数转换为BigDeciamal 获取当前年月日时分秒 百分比数据保留两位小数
bigdecimal 详细说明 1 JAVA中 去除BigDecimal末尾多余的0 方法1(重要) 去除 BigDecimal 数值尾数多余的0 方法2(理解) 自定义一种方法 2.1 JAVA中 ...
- mysql 百分比两位小数_SQL中如何让百分比后面保留2位小数?
例:selectstr(convert(float,(@czcj/@ckrs)*100))+'%'as机试合格率输出显示:87%,但是想要后面保留两位小数如:87%.12.谢谢解答!87.12%dec ...
- html计算保留两位小数,5.298保留两位小数
5.982保留一位小数约是(),保留整数约是(). 5.982保留一位小数约是(6.0): 保留整数约是(6): 百分位是8: 进位: 5.9+0.1 =6.0 3.298保留两位小数是什么答案3.2 ...
- java计算百分比并保留两位小数
直接上代码 //import java.text.NumberFormat; public static void main(String[] args) {Integer a = 8;Integer ...
- java除法计算保留2位小数
int a=7;int b=9;DecimalFormat df=new DecimalFormat("0.00");System.out.println(df.format((f ...
- 蓝桥杯练习题:计算保留100位小数的圆周率
文章目录 一.提出问题 二.解决问题 (一)分析 (二)编程 1.编写程序,计算圆周率 2.运行程序,查看结果 一.提出问题 人们创造了上百种方法求圆周率 π \pi π的值,其中比较常用且易于编程的 ...
- 请帮小明同学设计一个程序,输入上次考试成绩(int)和本次考试成绩(int),然后输出成绩提高百分比,保留2位小数。
运行代码测试结果
最新文章
- 【图论专题】图的存储与遍历(最小环、所有环的大小)
- 红帽OpenShift总经理谈容器技术需要关注的方向
- 解决AS gradle下载同步卡慢的问题
- POJ1904 强联通(最大匹配可能性)
- 2.8 多任务学习-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
- iOS - 数据持久化之 FMDB 的使用
- 揭秘各国总统们钟爱的手机
- hssfworkbook 设置自适应宽度_「CSS很简单」CSS 实现宽高等比自适应容器
- click事件在什么时候出发_超全的js事件机制amp;事件委托
- 玩转oracle 11g(16):命令学习4
- Oracle特殊恢复原理与实战(DSI系列)
- java使用数组排序方法_java数组中的排序问题(冒泡排序方法的实现,及内置排序算法的应用)...
- mysql协议分析1,MySQL协议分析(1)
- 闩锁效应的产生原因及解决办法
- 智慧城市大数据可视化系统设计心得
- Spark RDD 练习
- 国际贸易术语_Incoterm
- torch.randn用法
- 2021最新微信域名检测后屏蔽举报源码
- 【运筹学】指派问题匈牙利法
热门文章
- torch.nn模块之卷积层详解
- 未来科技科幻电影全息效果HUD Ultimate FUI HUD Library
- win7升级win10 出现 0x80072F8F - 0x20000
- android王者调不了界面,王者荣耀登入界面修改方法 ios用户无法修改
- 玩转快速排序(递归+非递归)
- @Validated参数校验——校验列表List
- 关于使用多线程批量请求的需求
- physxloader.dll x86_PhysXLoader64.dll下载|PhysXLoader64.dll下载官方版【32位|64位】-太平洋下载中心...
- 访客分析有助网站规划推广
- 一文辨明QPS、TPS、PV、UV、DAU、MAU、并发用户数、吞吐量~