2020-12-08

2023-05-16


代码简介:python读取excel数据,并汇总结果,统计厂商个数,每个厂商的版本个数,提测型号种类,厂商总的测试通过率

import xlrd
import openpyxl
import xlwt
from xlutils.copy import copy
import os
import numpy as np
import pandas as df
from xlutils.copy import copy as xl_copy
from collections import defaultdict

wb=xlrd.open_workbook('Q:\pythonProject1\excel\盘点sun.xlsx')
sheet1=wb.sheet_by_name('梳理表0701-1116')
nrowNum=sheet1.nrows#获取行数
ncolNum=sheet1.ncols#获取列数
for i in range(0,ncolNum):
    if  sheet1.cell_value(0,i) == '厂商':
        factorycolnum=i;
       #print(sheet1.cell_value(0, factorycolnum))
    if sheet1.cell_value(0, i) == '型号':
        modelcolnum = i;
    if sheet1.cell_value(0, i) == '验收测试结果':
        resultcolnum = i;
print("厂商列号:%d 型号列号:%d 测试结果的列号:%d" % (factorycolnum,modelcolnum,resultcolnum))

print("1、加载原有的工作簿,创建新的表格,将厂商,型号,测试结果写入新的表格中")
newwb=copy(wb)#在原有表的基础上新增sheet,用来存储汇总的数据,修改原来的工作簿需要先复制
newsheet=newwb.add_sheet('年终数据盘点')#添加新的工作簿
newsheet.write(0,0,"厂商")
newsheet.write(0,1,"型号")
newsheet.write(0,2,"测试结果")
#从原有的表格中读取厂商,型号,测试验收结果
for j in range(1, nrowNum):
    newsheet.write(j, 0, sheet1.cell_value(j,factorycolnum))
    newsheet.write(j, 1, sheet1.cell_value(j, modelcolnum))
    newsheet.write(j, 2, sheet1.cell_value(j, resultcolnum))
print("2、基本信息读写完成")
newwb.save('Q:\pythonProject1\excel\盘点sun.xls')  # 读取数据不需要保存,修改需要保存为xx.xls文件

wb=xlrd.open_workbook('Q:\pythonProject1\excel\盘点sun.xls')
dataSheet=wb.sheet_by_name('年终数据盘点')
newwb=copy(wb)
newws1=newwb.get_sheet('年终数据盘点')
r=0
l=[]#创建临时列表
while r<dataSheet.nrows-1:
    r+=1
    l+=[dataSheet.row_values(r)]
# print(l)
print("3、对l的的数据进行排序")

#sorted(可迭代的对象,使用函数来确定比较方式,reverse排序的顺序,true为反向排序)
l1=sorted(l,key=lambda x:(str(x[0]),str(x[1])))
print(l1)
print('将排序后的数据,重新写入表格')
n=0
for v in l1:
    n+=1
    newws1.write(n,0,v[0])
    newws1.write(n,1,v[1])
    newws1.write(n,2,v[2])
newwb.save('Q:\pythonProject1\excel\盘点sun.xls')

print("4、对数据进行统计,并把统计结果写入excel")

wb=xlrd.open_workbook('Q:\pythonProject1\excel\盘点sun.xls',formatting_info=True)
dataSheet=wb.sheet_by_name('年终数据盘点')
newwb=copy(wb)
# newsheet=newwb.add_sheet('年终数据盘点1')
newws2=newwb.get_sheet('年终数据盘点')
print('统计数据')
totalTestNum=dataSheet.nrows
print('共提测:%d ' % totalTestNum)
# print('读取每一行,统计将厂商去重后的个数')
r=0;lfactory=[];lmodel=[]
while r<dataSheet.nrows-1:
    lfactory += [dataSheet.cell_value(r, 0)]
    lmodel += [dataSheet.cell_value(r, 1)]
    r+=1
b = set()
print('共对接厂商个数:%d' % len(set(lfactory)))
print('共对接产品型号个数:%d' % len(set(lmodel)))

i=0;d=dict()
dd=dict()
while i<totalTestNum:
    key1= dataSheet.cell_value(i, 0)
    val1= dataSheet.cell_value(i, 1)
    val2 = dataSheet.cell_value(i, 2)
    if key1 in d.keys():
        d[key1]+=[val1]
        dd[key1]+= [val2]
    else:
        d[key1]=[val1]
        dd[key1] = [val2]
    i+=1
print('将厂商名字,提测版本数,提测型号种类,通过率写入excel')
hang1=1;
newws2.write(0, 4, '厂商');newws2.write(0, 5, '提测版本数');newws2.write(0, 6, '提测型号种类')
newws2.write(0, 7, '提测通过率')
for k1 in d:#将厂商
  # print(k1,len(d[k1]),len(set(d[k1])))
  newws2.write(hang1,4,k1)
  newws2.write(hang1,5,len(d[k1]))
  newws2.write(hang1,6,len(set(d[k1])))
  hang1+=1
#计算每个厂商的通过率
hang2=1
floatdata=0.00
for k2 in dd:
   floatdata=dd[k2].count('已通过') / len(dd[k2])
   newws2.write(hang2, 7, '%.2f' %  floatdata)#写入的数据自动变成整数了,需要调整
   print('%.2f' % floatdata)
   hang2+=1
newwb.save('Q:\pythonProject1\excel\盘点sun.xls')

  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2020-12-08 的相关文章

  • 2020-12-08

    代码简介 xff1a python读取excel数据 xff0c 并汇总结果 xff0c 统计厂商个数 xff0c 每个厂商的版本个数 xff0c 提测型号种类 xff0c 厂商总的测试通过率 import xlrd import open
  • 8、docker+k8s+kubesphere:nfs安装(2020-08-02更新)

    8 docker 43 k8s 43 kubesphere nfs安装 server端安装在node151 yum y span class token function install span nfs utils rpcbind 配置文
  • Java面试大全(2020年版)201-300

    目录 201 删除 你们怎么处理redis缓存的数据 xff0c 怎么删除的202 redis的事务203 什么是ES xff1f 204 为什么要使用到ES xff1f 205 Elasticsearch是如何实现Master选举的 xf
  • 2020年12月30日 当SONiC遇到P4

    当SONiC遇到P4 SONiC P4 是SONiC中运行的P4虚拟交换机 xff0c 当前的SONiC P4是一个docker image xff0c 可以运行在任意的docker环境中 看看SONiC和P4能碰撞出什么火花 SONiC的
  • 00无人机简介以及课程介绍2020-07-03

    本系列的笔记全部来自于开课吧课堂的直播视频 xff0c 作为一个学生 xff0c 我只是进行有目的性的记录和总结 xff0c 而非博主我自己想出来写的 xff01 xff01 xff01 望周知 xff01 xff01 xff01 目录 一
  • 2020-11-23

    https blog csdn net guofei fly article details 104136008 utm medium 61 distribute pc relevant none task blog BlogCommend
  • 12-IDEA配置JDK版本(2020.2.3版本)

    1 配置当前项目的JDK版本 File gt Project Structure gt Project SDKs xff0c 也可以直接点击右上角的图标 2 配置之后创建的新项目JDK版本 类似于全局配置 File gt New Proje
  • 2020-11-03

    云计算五大特点 云计算 xff0c 是一种基于互联网的计算方式 xff0c 通过这种方式 xff0c 共享的软硬件资源和信息可以按需提供给计算机和其他设备 典型的云计算提供商往往提供通用的网络业务应用 xff0c 可以通过浏览器等软件或者其
  • 2020-11-17

    大数据的就业前景还是很不错的 大数据的价值体现在以下几个方面 xff1a xff08 1 xff09 对大量消费者提供产品或服务的企业可以利用大数据进行精准营销 xff1b xff08 2 xff09 做小而美模式的中小微企业可以利用大数据
  • CVPR 2020 论文大盘点-语义分割篇

    图像分割应用广泛 xff0c 在CVPR 2020 论文中所占比例很高 xff0c 可说是一大热门 xff0c 有110多篇相关论文 xff0c 本文盘点CVPR 2020 所有语义分割 xff08 Semantic Segmentatio
  • 2020计算机视觉领域顶级会议时间表

    CVPR IEEE Conference on Computer Vision and Pattern Recognition Location United States Date June 2020 Deadline TBD about
  • CVPR 2020:Cross-View Tracking for Multi-Human 3D Pose Estimation at over 100 FPS 论文阅读随笔

    CVPR 2020论文阅读系列之 3D 姿态估计一 xff1a 论文 xff1a Cross View Tracking for Multi Human 3D Pose Estimation at over 100 FPS 欢迎批评指正 以
  • 2020-12-29 Matlab自动化控制-Adrc自抗扰控制参数调节

    Matlab自动化控制 Adrc自抗扰控制参数调节 上篇参看 xff1a https blog csdn net qingfengxd1 article details 111830762 以最简单的线性组合方法 xff08 1 xff09
  • 2020/05/25 Prometheus监控k8s企业级应用 1

    2 2 课程介绍及课程大纲 普罗米修斯的配置很难 2 3 Prometheus监控软件概述 prometheus是一名google的前员工写的 xff0c 也是go语言写的 xff0c K8S是第一个托管的项目 xff0c promethe
  • 【slam-2020-01-02】扩展应用

    一篇比较全面的slam博客 一 VR 43 AR 1 VR和AR的关系 AR MR是平台 xff0c 覆盖面比VR更广 xff0c VR是一种媒体形式 xff0c 任何用得到媒体的场景 xff0c 如娱乐 教育等 xff0c 都会有VR的影
  • 2020.2.22 排位赛 G - Bucket Brigade(BFS)

    Bucket Brigade 题面 题目分析 BFS模板题 代码 span class token macro property span class token directive keyword include span span cl
  • 2020.10.22项目调试记录

    1 对于ROS项目 xff0c catkin make之后找不到可执行的launch文件 xff0c source devel setup bash之后还是无效 最后发现是对应的CMakeLists txt文件中某个语句的位置问题导致的 x
  • 2020-11-21

    xftp 提示无法显示远程文件夹 不是什么被动不被动的问题 是权限的问题 xff0c 如果这个文件夹有 34 x 34 权限 就可以打开 没有就不行
  • 人工测试之代码检查、走查与评审

    人工测试方法 代码检查 代码走查 桌面检查 同行评审 代码检查与代码走查的联系 1 要求人们组成一个小组来完阅读或直观检查特定的程序 找出错误 但不必改正错误 2 都是对过去桌面检查过程 在提交测试前 由程序员阅读自己程序的过程 的改进 3
  • AI那些事儿之验证集、shuffle作用

    验证集干啥的 验证集合测试集哪个更重要 一句话 训练集用于 自动地 训练调整模型中网络参数 weights 验证集用于调超参数 epochs轮数 几层比较合适 啥时候过拟合 要不要dropout 要多大程度 测试集测试模型泛化能力 验证集和

随机推荐

  • OpenStack安装相关问题及解决方法

    OpenStack排错总结 1 AMQP Server on controller 5672 is unreachable 解决方法 xff1a iptables I INPUT p tcp dport 5672 j ACCEPT 2 un
  • WSL2迁移方法

    WSL是Windows下的Linux子系统 xff0c 可以代替虚拟机来运行Linux系统 xff0c 占用资源少 xff0c 使用方便 xff0c 下面说一下如何对已发布子系统进行迁移 一种情况是针对同一个系统 xff0c 更换安装的位置
  • 将Word 2010的公式转换成MathType公式

    现在越来越多的人在文档中编辑公式的时候会选择MathType来编辑 xff0c 因为它包含有众多的数学符号和模板 xff0c 编辑公式时非常方便 但是也有一些人在编辑公式时没有使用MathType公式编辑器 xff0c 直接使用Word中自
  • Paraview与VTK学习笔记(五)

    上一节最后执行到 xff1a this gt GetRenderWindow gt Render 也就是执行到了vtkRenderWindow Render 了 xff0c 我们可以看到这个函数是告诉这个RenderWindow下的每一个r
  • cf1214A A. Optimal Currency Exchange

    A Optimal Currency Exchange time limit per test1 5 seconds memory limit per test512 megabytes inputstandard input output
  • HTTP 413 Request Entity Too Large(Payload Too Large)

    原因 上传文件时 xff0c 请求参数过大 xff0c 导致超出服务端限制 客户端发送的实体主体部分比服务器能够或者希望处理的要大 解决 Nginx默认最大能够上传1MB文件 xff0c 打开nginx conf在http 中 xff0c
  • 常见服务默认端口

    服务端口FTP xff08 File Transfer Protocol xff0c 文件传输协议 xff09 21端口SSH xff08 Secure Shell Protocol xff0c 安全外壳协议 xff09 22端口Telne
  • linux环境下交叉编译arm架构jpeglib

    1 官网下载jpeglib源码 下载地址 http www ijg org 选择目前最新的版本jpegsrc v9c tar gz 2 配置 configure prefix span class token operator 61 spa
  • python批处理将图片进行放大实例代码

    最近处理一些规格不一的照片 xff0c 需要修改成指定尺寸便于打印 xff0c 本篇文章主要给大伙介绍关于Python批量处理将图片进行放大的相关资料 xff0c 文中通过实例代码介绍的非常详细 xff0c 需要的伙伴们可以参考下 pyth
  • 一些必不可少的Sublime Text 2插件

    中文原文 xff1a 一些必不可少的sublime text 2插件 整理自 xff1a Essential Sublime Text 2 Plugins and Extensions 请尊重版权 xff0c 转载请注明来源 xff0c 多
  • linux系统安装Confluence

    1 使用docker安装Confluence容器 docker run d name confluence p 8090 8090 user root root cptactionhank atlassian confluence late
  • Ubuntu 20.04 安装STM32开发环境 (Ubuntu+STM32CubeMX + Vscode+Makefile+Openocd)

    小记 xff1a 最近在学习I MX6U和Zynq比较多 xff0c 又都是在linux系统下 xff0c 然后又不想丢下STM32单片机 xff0c 所以就想到了可不可以在Ubuntu操作系统中编写STM32的代码 xff0c 来替代Wi
  • rust 介绍及开发环境配置(linux+windows)

    本文以windows或linux桌面作为开发环境 注意 xff1a rust需要c的编译器 rustup是官方的 xff0c 会安装cargo包管理 xff0c 这个cargo通常会伴随rust开发的全过程 一 介绍 官网链接 xff1a
  • 打开.data文件的步骤

    老师最近给了一组 data格式的文件 xff0c 当我直接强行改为 csv或者 xls文件再使用Python打开 xff0c 发现数据在Python中只有一列 xff0c 后面无法对数据进行索引 xff0c 在搜了一些方法后 xff0c 分
  • Week2 实验 A - 化学 Gym - 270437A

    题目 甄别烷烃基的类别 假设如上图 xff0c 这个烷烃基有6个原子和5个化学键 xff0c 6个原子分别标号1 6 xff0c 然后用一对数字 a b 表示原子a和原子b间有一个化学键 这样通过5行a b可以描述一个烷烃基 输入第一行为数
  • cf1214B B. Badges

    B Badges time limit per test1 second memory limit per test512 megabytes inputstandard input outputstandard output There
  • OpenWrt无线桥接同网段主路由的方法

    OpenWrt无线桥接同网段主路由的方法 注 xff1a 有些版本的openwrt需要将DNS转发关闭 xff0c 否则无法上网
  • mybatis-sql语句莫名其妙被加上limit分页条件或未执行查询条件

    1 背景 在优化代码 xff0c 查询sql执行情况时 xff0c 突然发现写的查询条件突然发现被加了limit参数 以为遇到了bug xff0c 查了半天 结果是同事在另一业务代码里查询时用了开启了分页 xff0c 但后面业务其实没用到
  • 2020-11-03

    ios工作层设备 一层 xff08 物理层 xff09 xff1a 网卡 集线器 中继器 二层 xff08 数据链路层 xff09 xff1a 网桥 交换机 xff08 暴露真实mac地址 xff09 三层 xff08 网络层 xff09
  • 2020-12-08

    代码简介 xff1a python读取excel数据 xff0c 并汇总结果 xff0c 统计厂商个数 xff0c 每个厂商的版本个数 xff0c 提测型号种类 xff0c 厂商总的测试通过率 import xlrd import open