pandas basic提升工作中的表格数据筛选、匹配效率

近日发现工作中有一项任务需要高频率地对表格进行处理,涉及到数据筛选和匹配的过程,这类工作机械化、重复性高、过程无意义,因此考虑用pandas来固化这一操作过程,提升工作效率。

先介绍一下背景。部门产品有两个品牌,每个品牌底下涉及的机型很多,各机型之间的能力差异(拥有的功能及规格)通过一个表格(能力集)来控制,能力集中包含各功能模块及其子项,有好几百项。

而每年新产品发布都会新增不少机型,这些机型都对应对标部分已有的机型,即新机型的能力必须不低于对标老机型的能力。目前的测试方法为黑盒测试,测试人员没有章法、没有统一测试环节,发现问题常常是误打误撞,甚至可能在SIT阶段才发现能力集问题。为了改变这一情况,团队决定通过白盒方式,比较能力集表格中新老机型的差异、匹配到对应的模块负责人来统一测试,由于每个测试版本开发都可能不断优化产品能力,因此该表格虽然结构不变,但数值可能会有变化,需要定期检查,各模块测试人员参考比对结果有目的地进行测试。每发布一个测试版本都对一个几百*几百的表格进行机械化地操作,不如考虑用pandas来处理,减少表格操作时间、提升效率。

输入(以下数据内容均为构造)

1、能力集表格(test_capability.csv)

test_capability.csv

2、模块-对应测试人员表格(module_tester.csv)

module_tester.csv

3、需要比对的机型列表(直接在代码中修改)

#想要比较的目标机型

cols = [['BrandA110E','BrandA115E'],['BrandB2333','BrandB2333E']]

输出

1、差异比对表格(diff.xlsx),其中每一个表单对应一对机型比对的差异结果,且匹配了对应的模块负责的测试人员

diff.xlsx

需要引入的包:

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

import csv

import numpy as np

import pandas as pd

比对机型差异函数get_diff(col_names,df,testers):

涉及最基础的pandas对数据框的操作(取数据、新建空dataframe、追加值)

比对机型差异函数get_diff(col_names,df,testers)

其中调用了匹配模块对应测试负责人的函数match_testers:

涉及dataframe的匹配pd.merge和排序df.sort_values,类似sql的join和sort:

匹配模块对应测试负责人的函数match_testers

主函数:

涉及用pandas进行csv读取及写入到一个excel的多个表单

主函数

附:pandas cheatsheet


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容