# -*- coding: utf-8 -*- """ Created on Wed Nov 30 11:18:16 2016 @author: Administrator """ import xlrd import pandas,numpy import matplotlib.pyplot as plt import pandas as pd #参数 #报告时间 reportdate="2016/12/22" #省份 admin="浙江" fileName="2016年第1期广西药品质量公告(总第37期)不符合.xlsx" year="2014年1期" #文件名 file="药品质量公告(总第5期)" url="www.sda.gov.cn/WS01/CL0090/105223.html" #假冒设置为空值 fake="" data = xlrd.open_workbook(fileName) table = data.sheets()[0] #获取行数和列数 nrows = table.nrows ncols = table.ncols #把excel数据转换为列为元素的列表 list_columns=[] #A类,存储标签包含的关键字 #存储药品名称相关中文 list_title_names=[‘药品名称‘,‘检品名称‘] #存储标示生产企业相关中文 list_title_manufacturers=[‘标示生产单位‘,‘标示生产企业‘] #存储药标示批号相关中文 list_title_pitchnos=[‘标示批号‘,‘批号‘] #存储药标示批号相关中文 list_title_specifications=[‘标示规格‘,‘规格‘] #存储不合格项目相关中文 list_title_unpasseditems=[‘不符合项目‘,‘不合格项目‘] #存储有效期相关中文 list_title_validperiods=[‘有效期至‘] #存储来源相关中文 list_title_sources=[‘检品来源‘,‘来源‘] #存储检验单位相关中文 list_title_testoffices=[‘检验单位‘] #存储检验物质相关中文 list_title_testobjectives=[‘检验物质‘] #存储检验依据相关中文 list_title_regulations=[‘检验依据‘] #存储备注相关中文 list_title_notices=[‘备注‘] #B类,存储列信息 list_name=[] list_manufacturer=[] list_pichno=[] list_specification=[] list_unpasseditem=[] list_validperiod=[] list_reportdate=[] list_source=[] list_testoffice=[] list_testobjective=[] list_regulation=[] list_year=[] list_file=[] list_url=[] list_notice=[] list_fake=[] #把excel数据转换为列为元素的列表 函数 def List_columns(table,ncols): for i in range(ncols): list1=table.col_values(i) list_columns.append(list1) return list_columns #获取list_columnInformation数据 #list_columns是把excel数据转换为列为元素的列表 #list_title存储列标签信息,例如list_title_unpasseditems #list_columnInformation表示搜索到的相关列信息,例如list_names def List_columnInformation(list_columns,list_title_names,list_columnInformation): for i in range(len(list_columns)): #获取列数据 list_column=list_columns[i] #title表示标题,例如产品名字 title=list_column[0] print("title:",title) if title in list_title_names: print("find title") list_columnInformation=list_column[1:] return list_columnInformation else: list_columnInformation=[‘‘]*(nrows-1) return list_columnInformation #用于获取报告时间,网址,文件名等列信息 def List_repeat_columnInformation(nrows,value): list_repeat_columnInformation=[value]*(nrows-1) return list_repeat_columnInformation #获取各列数据 list_columns=List_columns(table,ncols) list_name=List_columnInformation(list_columns,list_title_names,list_name) list_manufacturer=List_columnInformation(list_columns,list_title_manufacturers,list_manufacturer) list_pichno=List_columnInformation(list_columns,list_title_pitchnos,list_pichno) list_specification=List_columnInformation(list_columns,list_title_specifications,list_specification) list_unpasseditem=List_columnInformation(list_columns,list_title_unpasseditems,list_unpasseditem) list_validperiod=List_columnInformation(list_columns,list_title_validperiods,list_validperiod) list_reportdate=List_repeat_columnInformation(nrows,reportdate) list_source=List_columnInformation(list_columns,list_title_sources,list_source) list_testoffice=List_columnInformation(list_columns,list_title_testoffices,list_testoffice) list_testobjective=List_columnInformation(list_columns,list_title_testobjectives,list_testobjective) list_regulation=List_columnInformation(list_columns,list_title_regulations,list_regulation) list_adminadd=List_repeat_columnInformation(nrows,admin) list_year=List_repeat_columnInformation(nrows,year) list_file=List_repeat_columnInformation(nrows,file) list_url=List_repeat_columnInformation(nrows,url) list_notice=List_columnInformation(list_columns,list_title_notices,list_notice) list_fake=List_repeat_columnInformation(nrows,‘‘) #pandas字典写入excel会有标题排序问题,所以用a,b,c等顺序字母代替 data=pd.DataFrame({‘a‘:list_name,‘b‘:list_manufacturer, ‘c‘:list_pichno,‘d‘:list_specification, ‘e‘:list_unpasseditem,‘f‘:list_validperiod, ‘g‘:list_reportdate,‘h‘:list_source, ‘i‘:list_testoffice, ‘j‘:list_testobjective, ‘k‘:list_regulation,‘l‘:list_adminadd, ‘m‘:list_year,‘n‘:list_file,‘o‘:list_url, ‘pme_notice‘:list_notice,‘q‘:list_fake}) data.to_excel("ypzl_normal.xlsx")
时间: 2024-09-29 08:47:39