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作圖,就可以完成用戶數據統計

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM