(一)案例一介绍
现在有一匹电商产品跟当日销量的数据,如下,总共有上万笔的数据,现在需要统计每个品牌当日的销售量,比如美宝莲今天总共卖出了多少的商品,另外需要统计每个品牌下面的每个子品类当日销售量(品类可分为口红、睫毛膏、粉底等),比如卡姿兰口红卖了多少、眉笔卖了多少
首先是要做出关键字码表,如下,这些是透过电商常用的产品称呼和观察发现的,需要对商品名称有一定的了解,比如欧莱雅的洁面膏其实就是洗面奶,
后面就是建立一个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作图,就可以完成用户数据统计