前言:用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相关推荐

  1. JS 两数相除取百分比%并保留两位小数

    代码如下: //两数相除取百分比%并保留两位小数 function Percentage(number1, number2) { // 小数点后两位百分比return (Math.round(numb ...

  2. PHP计算百分比,保留指定位小数,保留整数

    $total = '100'; //总数 $single = '43'; //单个数 echo round($single /$total *100,2)."%<br />&qu ...

  3. Bigdecimal BigDeciamal元转换为万元,转换为百分数,字符串与数值互转,整数/浮点数转换为BigDeciamal 获取当前年月日时分秒 百分比数据保留两位小数

    bigdecimal 详细说明 1 JAVA中 去除BigDecimal末尾多余的0 方法1(重要) 去除 BigDecimal 数值尾数多余的0 方法2(理解) 自定义一种方法 2.1 JAVA中 ...

  4. mysql 百分比两位小数_SQL中如何让百分比后面保留2位小数?

    例:selectstr(convert(float,(@czcj/@ckrs)*100))+'%'as机试合格率输出显示:87%,但是想要后面保留两位小数如:87%.12.谢谢解答!87.12%dec ...

  5. html计算保留两位小数,5.298保留两位小数

    5.982保留一位小数约是(),保留整数约是(). 5.982保留一位小数约是(6.0): 保留整数约是(6): 百分位是8: 进位: 5.9+0.1 =6.0 3.298保留两位小数是什么答案3.2 ...

  6. java计算百分比并保留两位小数

    直接上代码 //import java.text.NumberFormat; public static void main(String[] args) {Integer a = 8;Integer ...

  7. java除法计算保留2位小数

    int a=7;int b=9;DecimalFormat df=new DecimalFormat("0.00");System.out.println(df.format((f ...

  8. 蓝桥杯练习题:计算保留100位小数的圆周率

    文章目录 一.提出问题 二.解决问题 (一)分析 (二)编程 1.编写程序,计算圆周率 2.运行程序,查看结果 一.提出问题 人们创造了上百种方法求圆周率 π \pi π的值,其中比较常用且易于编程的 ...

  9. 请帮小明同学设计一个程序,输入上次考试成绩(int)和本次考试成绩(int),然后输出成绩提高百分比,保留2位小数。

    运行代码测试结果

最新文章

  1. 【图论专题】图的存储与遍历(最小环、所有环的大小)
  2. 红帽OpenShift总经理谈容器技术需要关注的方向
  3. 解决AS gradle下载同步卡慢的问题
  4. POJ1904 强联通(最大匹配可能性)
  5. 2.8 多任务学习-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  6. iOS - 数据持久化之 FMDB 的使用
  7. 揭秘各国总统们钟爱的手机
  8. hssfworkbook 设置自适应宽度_「CSS很简单」CSS 实现宽高等比自适应容器
  9. click事件在什么时候出发_超全的js事件机制amp;事件委托
  10. 玩转oracle 11g(16):命令学习4
  11. Oracle特殊恢复原理与实战(DSI系列)
  12. java使用数组排序方法_java数组中的排序问题(冒泡排序方法的实现,及内置排序算法的应用)...
  13. mysql协议分析1,MySQL协议分析(1)
  14. 闩锁效应的产生原因及解决办法
  15. 智慧城市大数据可视化系统设计心得
  16. Spark RDD 练习
  17. 国际贸易术语_Incoterm
  18. torch.randn用法
  19. 2021最新微信域名检测后屏蔽举报源码
  20. 【运筹学】指派问题匈牙利法

热门文章

  1. torch.nn模块之卷积层详解
  2. 未来科技科幻电影全息效果HUD Ultimate FUI HUD Library
  3. win7升级win10 出现 0x80072F8F - 0x20000
  4. android王者调不了界面,王者荣耀登入界面修改方法 ios用户无法修改
  5. 玩转快速排序(递归+非递归)
  6. @Validated参数校验——校验列表List
  7. 关于使用多线程批量请求的需求
  8. physxloader.dll x86_PhysXLoader64.dll下载|PhysXLoader64.dll下载官方版【32位|64位】-太平洋下载中心...
  9. 访客分析有助网站规划推广
  10. 一文辨明QPS、TPS、PV、UV、DAU、MAU、并发用户数、吞吐量~