求高人指点:关于python读取excel数据和获取三层列表最里层指定数据的处理方法,及优化
我写了两个方法处理读取指定格式excel中的指定数据:importxlrdimportcopydefreadfile_src(fileroute,modularname)...
我写了两个方法处理读取指定格式excel中的指定数据:import xlrdimport copydef readfile_src(fileroute,modularname): """参数:文件路径,要读取的sheet的名称 返回:指定sheet中所有的数据 """ workbook = xlrd.open_workbook(fileroute, formatting_info=True) # 实例化一个workbok对象 sheet = workbook.sheet_by_name(modularname) #读取指定sheet suite = sheet.merged_cells #存放获取到的合并表格 test_data = [] #存放所有行数据 suites = [] #存在带有起始行和结束行信息的所有合并表格 for item in suite: lsts = [sheet.col_values(0)[item[0]], item[0], item[1] - 1] for i in range(item[0], item[1]): test_data.append(sheet.row_values(i)) suites.append(lsts) data = [] for item in suites: suite_data_list = [] for data_list_rlow in range(item[1]-1,item[2]): suite_data_list.append(test_data[data_list_rlow]) data.append(suite_data_list) return datadef readdata_suite(suite_name,test_case_name,data): """参数:合并表格的名称、整个sheet的数据、姓名 返回:指定姓名的这行数据数据 """ suite_data1 = copy.deepcopy(data) test_case_data = [] #存放指定姓名的数据 print suite_data1 for suite in suite_data1: print suite[0][0] if suite[0][0] == suite_name: print suite for case in suite: if case[1] == test_case_name: del case[0] for item in case: cell_type = type(item) if (cell_type == float): cell_data = int(item) cell_data = str(cell_data) elif (cell_type == int): cell_data = str(item) else: cell_data = item test_case_data.append(cell_data) break break return test_case_dataexcel文档数据如图中所示,最终目的输入班级和姓名,得到对应姓名的行数据:年龄、身高.... 这行后面可以添加其他数据我自己写了上面的代码实现了这样的功能,想知道其它更好的实现方式;我中间基本都是使用for循环实现的,三层for循环太难读了,想知道如何去优化PS:我是python新手,刚开始学习,望得到高人指点指点
展开
1个回答
2018-09-26 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
关注
展开全部
大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性),平台有hadoop
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询