python脚本自动统计excel_python脚本实现-excel二级统计

pandas和SQL数据分析实战视频教程

统计excel  C列 化学  和D列 补充申请  两个条件药品数量

程序优势在于批量统计,把参数写到excel里,行为单位

# -*- coding: utf-8 -*-

"""

Created on Thu Apr 7 08:38:51 2016

content内容必须是逗号分隔,例如'化药,中药'

用于统计excel--sheet---二级条件筛选的数据统计

算法:

1.读取所有excel内容,保存到二维列表中

2.二级筛选

@author: Administrator

"""

import csv,xlrd,os,openpyxl

#获取所有excel文件名

def Get_excelFileNames():

excelFiles_list=[]

for excelFilename in os.listdir('.'):

if excelFilename.endswith('.xlsx') or excelFilename.endswith('.xls'):

excelFiles_list.append(excelFilename)

return excelFiles_list

#获取一个excel内首页表格

def Get_sheet1_from_oneExcel(excelFileName):

wb=xlrd.open_workbook(excelFileName)

sheet=wb.sheets()[0]

return sheet

#获取excel的首页信息,去除首行

def Get_sheet1_Data_NoFirstLine(excelFileName):

sheet=Get_sheet1_from_oneExcel(excelFileName)

#获取表格行数和列数

highest_row=sheet.nrows

highest_column=sheet.ncols

sheet_data=[]

for rowNum in range(1,highest_row):

#获取行数据

rowData=sheet.row_values(rowNum)

sheet_data.append(rowData)

return sheet_data

#把csv文档内容转换成一个列表,不包括首行

def Read_CsvRows_noFirstLine(csvFilename):

csvRows = []

csvFileObj = open(csvFilename)

readerObj = csv.reader(csvFileObj)

for row in readerObj:

if readerObj.line_num == 1:

continue # skip first row

csvRows.append(row)

csvFileObj.close()

return csvRows

def one_excel_column_statistic(csv_row):

#csv特定行包含excel名字,sheet名,列,搜索内容

excelFilename=csv_row[0]

#print("excelFilename",excelFilename)

sheetName=csv_row[1]

#print("sheetName",sheetName)

column=int(csv_row[2])

#print("column",column)

content=csv_row[3]

#'化药,中药'必须转换为['化药', '中药'],否则无法遍历

content_list=content.split(",")

wb=xlrd.open_workbook(excelFilename)

sheet=wb.sheet_by_name(sheetName)

#获取excel指定列的类容

column_content_list=sheet.col_values(column)

#print("column_content_list",column_content_list)

number=0

for i in content_list:

count=column_content_list.count(i)

number+=count

print("excel文件名",excelFilename)

print("统计内容:",content)

print("数量:",number)

print("-"*20)

return number

def all_excel_column_statistic(csvFileName):

csv_content=Read_CsvRows_noFirstLine(csvFileName)

for csv_row in csv_content:

one_excel_column_statistic(csv_row)

def second_condition_statistic(csv_row):

count=0

excelFileName=csv_row[0]

sheet_data=Get_sheet1_Data_NoFirstLine(excelFileName)

Condition1=csv_row[2].split(',')[1]

Column1_letter=(csv_row[2].split(',')[0])

index1=column_letter_index_convert(Column1_letter)

Condition2=csv_row[3].split(',')[1]

Column2_letter=(csv_row[3].split(',')[0])

index2=column_letter_index_convert(Column2_letter)

for rowData in sheet_data:

if rowData[index1]==Condition1 and rowData[index2]==Condition2:

count+=1

print("excel文件名",excelFileName)

print("统计内容:",Condition1+">"+Condition2)

print("数量:",count)

print("-"*20)

return count

def all_second_condition_statistic(csvFileName):

csvRows=Read_CsvRows_noFirstLine(csvFileName)

for csv_row in csvRows:

second_condition_statistic(csv_row)

#excel列的

def column_letter_index_convert(letter):

list_letter_index=[["A",0],["B",1],["C",2],["D",3],["E",4],["F",5],["G",6],["H",7],["I",8],\

["J",9],["K",10],["L",11],["M",12],["N",13],["O",14],["P",15],["Q",16],["R",17],\

["S",18],["T",19],["U",20],["V",21],["W",22],["X",23],["Y",24],["Z",25]]

for i in list_letter_index:

if i[0]==letter.upper():

index=i[1]

return index

csvFileName="config.csv"

all_second_condition_statistic(csvFileName)

'''

excelFileName='1月.xlsx'

csv_row=['1月.xlsx', 'Sheet1', 'C,化药', '3,补充申请']

'''

print("问题反馈邮箱:231469242@qq.com")

print(" .-. ")

print(" \ \ ")

print(" \ \ ")

print(" 喵 喵 喵 | | ")

print(" | | ")

print(" /\---/\ _,---._ | | ")

print(" /^ ^ \,' `. ; ")

print(" ( O O ) ; ")

print(" `.=o=__,' \ ")

print(" / _,--.__ \ ")

print(" / _ ) ,' `-. `-. \ ")

print(" / ,' / ,' \ \ \ \ ")

print(" / / / ,' (,_)(,_) ")

print("(,; (,,) ")

var=input("enter anykey to quit")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500872.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 1.8stream_java jdk1.8 使用stream流进行list 分组归类操作

我就废话不多说了,大家还是直接看代码吧~import com.alibaba.fastjson.JSON;import java.util.ArrayList;import java.util.List;import java.util.stream.Collectors;/*** author czw*/public class Foo{private String name;private String type;private Double t…

百度链接解析_【集合】百度分享链接解析的方法总结

请大家在使用所有方法之前请先查看菜单栏中的用前必看01在别人分享的链接前面加 http://pan.naifei.cc/? 然后放入浏览器就可以解析了。比如: http://pan.naifei.cc/?链接:https://pan.baidu.com/s/XXX 提取码:1234 复制这段内容后打开百度网盘手机App,操作更方…

table表头固定4种方法_在常见的3种工资条场景中,教你4种批量打印工资条的方法...

私信回复关键词【福利】~获取丰富办公资源,助你高效办公早下班!打印工资条估计是财务老师的痛,要把一行行的数据,变成一条条的工资条。数据很多,表头很复杂。一个个复制粘贴?那是不可能的!那怎么…

hbase java api最新版本_HBase基本命令与新版本Java API

简介有关HBase的安装可以参考hbase安装我们可以通过hbase shell和hbase数据库进行交互,也可以通过Java-api和hbase数据库交互,这里我们使用的是hbase-client。主要是介绍2.0重大重构之后的api的基本使用。命名空间#列出所有命名空间list_namespace#新建命…

leetcode 贪心_贪心算法:给我最好的,现在就要!

每次做选择的时候都做出当下最好的选择,而不考虑将来的后果。并且期望最终得到的结果是全局最优的。 ——贪心算法 - Greedy Algorithm什么时候该使用贪心算法针对一组数据,定义了限制值。现在需要我们从中选出几个数据,在满足限制值的情况下…

java导致native非法指令,Java代码引起的NATIVE野指针问题(上)

朴英敏,小米MIUI部门。从事嵌入式开发和调试工作8年多,擅长逆向分析方法,主要负责解决安卓系统稳定性问题。上周音乐组同事反馈了一个必现Native Crash问题,tombstone如下: pid: 5028, tid: 5028, name: com.miui.play…

axure怎么做5秒倒计时_罗胖60秒:怎么做一个课程?

今天是罗胖陪伴你的第 2714 天1. 我们在研发课程的时候,有一个很关键的方法,我们内部称之为叫“不是而是”大法。2. 什么意思呢?就是如果你只告诉别人它是什么,那等于啥都没说。比如,我告诉你要经营好一家小店&#xf…

php7 变量,PHP7变量结构分析

PHP7相对于PHP5提升了将近一倍的性能,下面我将针对PHP7与PHP5的变量结构实现进行对比,分析为什么PHP7性能提升。当然变量结构修改只是PHP7性能提升中的一部分原因,还有很多原因比如HashTable结构变更、减少内存分配次数、多使用栈内存等等&am…

点在不规则图形内算法python_目标检测算法中规则矩形和不规则四边形IOU的Python实现...

交并比(Intersection-over-Union,IoU),目标检测中使用的一个概念,我们在进行目标检测算法测试时,重要的指标,是产生的预测框(candidate bound)与标记框(ground truth bound)的交叠率,即它们的交集与并集的比…

树莓派跑php,在树莓派4上部署nginx+php

本试验是基于树莓派的 buster 版本。一、安装 nginxapt install nginx -y完成安装之后,可以使用 dpkg -l | grep nginx 找到相关的安装包:通过分析 /var/lib/dpkg/status 可以得到 nginx 安装包的依赖关系:nginx --> nginx-full --> li…

只有python可以爬虫吗_无所不能的Python之爬虫那点事儿

今天给大家介绍一个有趣的新技术——爬虫。首先来讲一下啥是爬虫。爬虫也叫网络爬虫,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。通俗的来讲,爬虫就是一段程序,它来根据你的设定自己去互联网上浏览网页并把这些信…

java排队系统模型,MMC排队系统模型

MMC排队系统模型及应用M/M/C排队模型及其应用摘要:将随机服务系统中M/M/C排队模型应用到理发服务行业中。通过对某理发店进行调查,以10min为一个调查单位调查顾客到达数,统计了72个调查单位的数据,又随机调查了113名顾客服务时间&…

php 如何生成微信小程序,微信小程序一键生成平台系统/一键生成小程序开源小程序PHP|ThinkPHP平台源码下载...

源码名称:微信小程序一键生成平台系统/一键生成小程序开源小程序PHP|ThinkPHP平台源码下载购买须知:(请仔细阅读了解)【1】源码一律经测试无误。【2】不提供任何修改和编辑服务,不包安装调试,假如你什么都不懂的请不要拍。【3】假…

python excel格式刷_Excel格式刷怎么用?没你想的那么简单,你知道几种用法?

【温馨提示】亲爱的朋友,阅读之前请您点击【关注】,您的支持将是我最大的动力!Excel使用过程中,格式刷相信小伙伴们都知道,平常也没少用。Excel中格式刷可以帮助我们快速的复制单元格的格式,而不用再重新设…

php接受post接受不到数据,PHP $_POST接受不到数据,但$_GET可以接受数据

"HTML ajax端 $.ajax({ url:/login.php, data:{name:name, pwd:pwd}, type:POST, dataType:json, success:function(data){ console.dir(data) if(data.status 1) alert(data.mes) }else{ alert(data.mes) } } })php端:$sql "SELECT * FROM user WHERE …

python安装多个版本_Mac安装多个python版本

Mac安装多个python版本步骤如下:1、安装pyenv$sudo brew install pyenv然后在 .bash_profile 文件中添加命令:vi .bash_profile添加:eval "$(pyenv init -)"最后,更新一下环境变量命令:source .bash_profile…

java .item,javabb-javaitem-cloud

JavaItem-Cloud项目介绍JavaItem-Cloud是一个新开发的微服务架构平台,基于最新流行的技术SpringBoot、SpringCloud & SpringCloud Alibaba、Vue、Vuex、ElementUI。系统特性后端使用当前流行技术,SpringBoot、SpringCloud、SpringCloud Alibaba、Myb…

软件使用手册模板_我的印象笔记使用手册(精简说明)

在之前的一文中,我已经详细写过我的印象笔记使用的方法了,这次呢,再做一个更新的使用情况和更清楚明了和精简的说明。不居竹:我的印象笔记使用手册​zhuanlan.zhihu.com文章目录:1、知识管理收集知识整理知识输出知识2…

java 响应事件,用java响应颜色事件

我正在构建一个java应用程序来解决难题 . 我编码的方式基本上是程序将采取屏幕截图,在屏幕截图中找到一个像素,并通过机器人功能将鼠标移动到桌面上的那个位置 . 我理解屏幕截图背后的理论,将其存储在一个数组中,探索数组直到一个…

怎样保存python源程序_五分钟教会你如何编写、保存与运行 Python 程序

第一步接下来我们将看见如何在 Python 中运行一个传统的“Hello World”程序。Python教程本章将会教你如何编写、保存与运行 Python 程序。通过 Python 来运行的你的程序有两种方法——使用交互式解释器提示符或直接运行一个源代码文件。我们将了解如何使用他们二者的功能。使用…