• Python 处理Excel内的数据(案例介绍*2)


    (一)案例一介绍

    现在有一匹电商产品跟当日销量的数据,如下,总共有上万笔的数据,现在需要统计每个品牌当日的销售量,比如美宝莲今天总共卖出了多少的商品,另外需要统计每个品牌下面的每个子品类当日销售量(品类可分为口红、睫毛膏、粉底等),比如卡姿兰口红卖了多少、眉笔卖了多少

    首先是要做出关键字码表,如下,这些是透过电商常用的产品称呼和观察发现的,需要对商品名称有一定的了解,比如欧莱雅的洁面膏其实就是洗面奶,

    后面就是建立一个list,里面包含这些子品类,用这些关键字和品牌名称在商品列表逐一做匹配,比如商品里有“卡姿兰”又有“口红”的,再将符合的商品销售数量累加,输出至excel里,就可以完成统计,代码如下

    import xlrd
    import xlwt
    readbook = xlrd.open_workbook(r'brand.xlsx')
    sheet = readbook.sheet_by_index(0)
    cols1=sheet.col_values(0)
    cols2=sheet.col_values(1)
    workbook = xlwt.Workbook(encoding='utf-8')
    worksheet = workbook.add_sheet('result')
    #建立子品类清单 items
    = ['眉笔','口红','眉粉','眼线笔','睫毛膏','粉饼','唇彩','散粉','眼影','唇釉','腮红','BB霜','粉底液','卸妆水','隔离霜','面霜','香水'] k = -1 b = 0 #b是记录总数 for item in items: a = 0 #a是某个子品类的数目 array = [] i = -1 k = k+1 for col in cols1: i = i + 1
         if (item in col) and ('卡姿兰' in col): #商品名称里包含list里面的子品类和卡姿兰 array.append(i) for n in array: a = a+ cols2[n] print(item) print(a) b = b+a worksheet.write(k,0,item) worksheet.write(k,1,a) worksheet.write(k+1,0,'总数') worksheet.write(k+1,1,b) workbook.save('result.xls')

    最后将输出的结果做图展示

    (二)案例二介绍

    在一个项目中我们需要对用户的终端机器进行统计,可是接口传回的数据如下图,同样是IPhone却有上万种写法,除了IPhone外,其他的安卓手机像是华为、OPPO、VIVO、小米等都有类似的情况,现在需要将这些分散的数据识别出,并加以统计

    流程为:

    1、用关键字对表内的内容进行查找,将包含关键字的行记录。

    2、将包含关键字行第二列的数据进行加成,并且统计

    3、输出到新的文档里

    首先我们需要先制作一个关键字码表,如下图,我们将4大安卓机外的安卓机合计到安卓里面

    接着,用xlrd读取excel,用码表内的关键字跟第一列的数据进行匹配,符合匹配的将第二列的数字加总,最后用xlwt输出到excel文件里,实现代码如下

    import xlrd
    import xlwt
    readbook = xlrd.open_workbook(r'phone.xlsx')
    sheet = readbook.sheet_by_index(0)
    cols1=sheet.col_values(0)
    cols2=sheet.col_values(1)
    i = -1
    a = 0 #记录数目
    array = []
    keywords = ['iphone', 'iPhone', '苹果', 'Iphone', 'iOS']
    for col in cols1:
        i = i + 1
        for word in keywords: #匹配清单内的关键字
            if  word in col:
                array.append(i)
    for n in array:
        a = a+ cols2[n]
    print(a)
    workbook = xlwt.Workbook(encoding='utf-8')
    worksheet = workbook.add_sheet('test')
    worksheet.write(1,1,a)
    workbook.save('phone1.xls')

    最后用EXCEL作图,就可以完成用户数据统计

  • 相关阅读:
    解决GET http://localhost:8080/js/layui/layui.js net::ERR_ABORTED 404
    按钮向右浮动
    @RequestParam、@PathVariable、 @RequestBody用法
    【报错】No converter found for return value of type: class java.util.HashMap
    Kendo UI for jQuery数据管理使用教程:PivotGrid
    界面控件DevExpress WPF——支持UI自动化和Appium测试
    Visual Studio插件CodeRush v20.2.9发布——新的单元测试体验
    DevExpress WinForms帮助文档:如何初始表单位置
    C# 8 & C# 9功能如何进行单元测试?这里有答案
    最新版Devexpress WinForm.NET开发环境配置信息
  • 原文地址:https://www.cnblogs.com/yenpaul/p/10728473.html
Copyright © 2020-2023  润新知