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

https://study.163.com/course/courseMain.htm?courseId=1006383008&share=2&shareId=400000000398149

统计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")

 https://study.163.com/provider/400000000398149/index.htm?share=2&shareId=400000000398149( 欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章)

 

  

python脚本实现-excel二级统计的更多相关文章

  1. Delphi中使用python脚本读取Excel数据

    Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...

  2. 用python实现简单EXCEL数据统计的实例

    用python实现简单EXCEL数据统计的实例 下面小编就为大家带来一篇用python实现简单EXCEL数据统计的实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 任 ...

  3. 用python脚本通过excel生成文件夹树结构

    大概这样写标题是对的吧... 目标: 通过excel目录结构文档生成文件夹树结构. 也就是: 通过下面的excel

  4. 用 python实现简单EXCEL数据统计

    任务: 用python时间简单的统计任务-统计男性和女性分别有多少人. 用到的物料:xlrd 它的作用-读取excel表数据 代码: import xlrd workbook = xlrd.open_ ...

  5. python脚本从excel表到处数据,生成指定格式的文件

    #coding:gbk #导入处理excel的模块 import xlrd #定义哪些字段须要推断,仅仅支持时间字段 toSureColArray = ['CREATE_TIME','MODIFY_T ...

  6. python脚本 读取excel格式文件 并进行处理的方法

    一.安装xlrd模块 pip install xlrd 二.读取excel文件 try: excel_obj = xlrd.open_workbook("文件路径") except ...

  7. 使用python脚本批量设置nginx站点的rewrite规则

    一般情况下,配置rewrite重写规则使用shell脚本即可: 把url拼凑成1,2文件中中的格式,运行 chongxie.sh 即可生成我们需要的rewrite规则 [root@web01:/opt ...

  8. 关于python如何引用excel文件

    关于python如何引用excel文件 import pandas as pd #引用pandas库,as:将pandas简写为pd Nowcoder = pd.read_excel("1. ...

  9. python脚本将json文件生成C语言结构体

    1.引言 以前用过python脚本根据excel生成相关C语言代码,其实本质就是文件的读写,主要是逻辑问题,这次尝试将json文件生成C语言的结构体. 2.代码 这是一个json文件,生成这个结构体的 ...

随机推荐

  1. CentOS7.X版本系统的下载和安装

    一.下载CentOS镜像 1.打开浏览器输入centos.org 2.选择版本下载 3.进入下载页面选择下载版本的种子链接,在迅雷下载即可. 二安装CentOS系统 1.服务器开机,根据界面提示进入磁 ...

  2. [dev][ipsec][distributed] strongswan如何做热迁移/高可用/High Availability

    问题描述: 原生的基于kernel 的 strongswan 如何做高可用,HA,High Availability 问题分析: 基于我们已知的,ipsec,strongswan的知识.问题分解如下: ...

  3. JavaScript函数封装调用

    举个列子:我们在写前端页面,经常会使用到Jquery文本框内容,来判断一下输入值是否符合,常见的写法: <script> function test(){ $("#ID" ...

  4. Codeforces Round #524 (Div. 2) Masha and two friends矩形

    题目 题意:    给一个n*m块大的黑白相间的矩形,在这个举行中操作,要先把第一个矩形(左下角坐标(x1,y2),右上角坐标(x2,y2)) 全部涂成白色,再把第二个矩形(左下角坐标(x3,y3), ...

  5. Gitlab,Mac下生成SSH Key222

         git是分布式的代码管理工具,远程的代码管理是基于ssh的,所以要使用远程的git则需要ssh的配置.简单的说,Git - 版本控制工具:Github是一个网站,提供给用户空间创建git仓储 ...

  6. Selenium常用API的使用java语言之9-模拟键盘操作

    Keys()类提供了键盘上几乎所有按键的方法. 前面了解到, sendKeys()方法可以用来模拟键盘输入, 除此之 外, 我们还可以用它来输入键盘上的按键, 甚至是组合键, 如 Ctrl+A. Ct ...

  7. [bzoj 1471] 不相交路径 (容斥原理)

    题目描述 给出一个N(n<=150)N(n<=150)N(n<=150)个结点的有向无环简单图.给出444个不同的点aaa,bbb,ccc,ddd,定义不相交路径为两条路径,两条路径 ...

  8. Spring顾问、IOC注解和注解增强

    一.顾问 通知的一种表现方式(顾问包装通知/增强) Advisor: 名称匹配方法: NameMecthMethodPointcutAdvisor 1.定义了一个业务类 package cn.spri ...

  9. 【安卓进阶】Product Flavor基础玩法

    在安卓项目开发中,大多时候总是有测试环境.生产环境之类的区别,在不使用Product Flavor时,我们一般都是通过手工改动代码来实现测试环境.生产环境的切换. 这样就造成了项目管理上的不便,频繁的 ...

  10. CF837D Round Subset 动态规划

    开始的时候数据范围算错了~ 我以为整个序列 2 和 5 的个数都不超过 70 ~ 一个非常水的 dp code: #include <bits/stdc++.h> #define M 75 ...