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

excel多条件计数python_python脚本实现-excel二级统计相关推荐

  1. 三种excel 多条件计数方法

     http://www.ittribalwo.com/article/1396.html 内容提要:文章总结excel 多条件计数的三种方法,分别通过SUMPRODUCT.COUNTIFS函数.数 ...

  2. excel中去重计数_如何在Excel中计数

    excel中去重计数 There are lots of different ways to count things in Excel – maybe you need to count the n ...

  3. python 读excel每行替换_Python脚本操作Excel实现批量替换功能

    Python脚本操作Excel实现批量替换功能 大家好,给大家分享下如何使用Python脚本操作Excel实现批量替换. 使用的工具 Openpyxl,一个处理excel的python库,处理exce ...

  4. excel多条件计数python_Excel统计满足条件的不重复值个数的8种方法,第三种方法最适合新手!我真的入门了!...

    问题很常见,但是对新手来说又比较棘手,所以我们来一期,系统讲讲,个人我个人的知识储备,大概写了8种,涵盖Excel的方方面面!最后一种也满足一下大家对于Python的好奇! 友情提醒:应该是目前你所能 ...

  5. html表格转excel有科学计数法,table2excel生成excel表格出现科学计数法问题

    单据号日期客户金额现金刷卡支付宝微信支付招行基本户支付欠款无忧保险场地客户来源框架编号镜片类型发票区域备注退款总金额退款现金配镜师验光师退款刷卡退款支付宝退款微信支付退款招行基本户支付预约单号服务车辆 ...

  6. python教程111-Python多条件计数与求和

    示例工具:jupyter.wps 适用范围:用Python多条件计数.求和 数据Excel数据:「多条件计数求和」https://www.aliyundrive.com/s/6CdMvkFbofN 1 ...

  7. R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数

    R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数 目录

  8. EXCEL实用技巧-多条件求和、多条件计数、多条件查找

    多条件求和.多条件计数.多条件查找--多了去了! Excel中用countif和countifs统计符合条件的个数 Excel CountIfs函数轻松组合多条件,含不为空和不等于的例子 接近完美的E ...

  9. 极速办公如何在Excel中进行条件计数

    想要计算成绩大于70的人数,但是Excel如何进行条件计数呢?一起来学习吧! 1,新建excel表格,输入内容. 2,在E2单元格输入公式=COUNTIF(C2:C17,">70&qu ...

最新文章

  1. RESTful之视图集ViewSet
  2. php给留言分配id_如何使用php生成唯一ID的4种方法
  3. 【ZZ】IPv4与IPv6
  4. Debug Tensorflow: Object was never used (type <class ‘tensorflow.python.ops.tensor_array_ops.TensorA
  5. 【机器视觉】 dev_set_window_extents算子
  6. WebDriver 小毛笔记(二)准备工作
  7. apache camel_Apache Camel中的短重试与长重试
  8. 一帮一python_[python]L1-030 一帮一 (15分)
  9. SpringCloud工作笔记038---spring cloud-简单网关权限控制_直接在zuul里面做
  10. Map.Entry的使用(转载)
  11. Linux安装Diamond软件,Diamond软件比对蛋白质数据库
  12. python中text的textvriable_python+NLTK 自然语言学习处理五:词典资源
  13. 蒙特卡罗方法与马尔科夫链
  14. LODOP 打印插件使用
  15. 华为云文字识别服务关键技术、能力和产品落地需要注意的事宜(OCR系列二)
  16. 2016年安防上市公司年报披露情况
  17. 零基础如何学 Web 前端开发?
  18. android开源项目---RoundedImageView制作圆角矩形,椭圆形以其圆形控件
  19. vue 找回密码_找回密码的功能设计
  20. Spring Cloud学习(一) ZuulFilter 过滤器详解

热门文章

  1. Altium Designer 10 ( PCB)生成logo图案
  2. 没有离职证明能入职吗(离职证明丢了能入职吗)
  3. 用树莓派搭建全功能NAS服务器(03):了解你的网络内网穿透
  4. 程序员下班后不关电脑的背后原因竟然是...
  5. 问题 D: 货币套汇(图路径)-- Guard
  6. PEiD--什么都没发现
  7. 计算机考研408每日一题 day90
  8. kaggle竞赛系列1----elo竞赛kernel分析1
  9. 阿里云盘承诺永不限速
  10. Flask(十二)——消息闪现