美文网首页
pandas basic提升工作中的表格数据筛选、匹配效率

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

作者: 街角一爿店 | 来源:发表于2019-06-22 22:45 被阅读0次

    近日发现工作中有一项任务需要高频率地对表格进行处理,涉及到数据筛选和匹配的过程,这类工作机械化、重复性高、过程无意义,因此考虑用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

    相关文章

      网友评论

          本文标题:pandas basic提升工作中的表格数据筛选、匹配效率

          本文链接:https://www.haomeiwen.com/subject/uzcbqctx.html