Python銷售訂單分析
我們常講數(shù)據(jù)分析的三大作用:現(xiàn)狀分析、原因分析、預(yù)測分析,現(xiàn)狀分析可以表明當(dāng)前的業(yè)務(wù)狀況,對當(dāng)前的業(yè)務(wù)狀況做分析,可以給決策者提供一個數(shù)據(jù)支撐和參考。
本節(jié)使用一組銷售訂單明細(xì)數(shù)據(jù),研究不同產(chǎn)品的訂單數(shù)和銷量情況,同時研究每個分撥中心的銷量占比以及哪些月份訂單量最多,綜合數(shù)據(jù)分析的結(jié)果給業(yè)務(wù)決策熱提供數(shù)據(jù)支持。
示例工具:anconda3.7 本文講解內(nèi)容:銷售訂單數(shù)據(jù)分析 適用范圍:Python業(yè)務(wù)數(shù)據(jù)分析

數(shù)據(jù)獲取
「銷售訂單分析」https://www.aliyundrive.com/s/8yihmUZPhWK
研究目的
訂單前十的產(chǎn)品都有哪些?
銷售量前十的產(chǎn)品都有哪些?
每個分撥中心的銷量占比是多少?
哪些月份訂單量最多?
數(shù)據(jù)導(dǎo)入
使用pandas包導(dǎo)入數(shù)據(jù),其中parse_dates用于解析日期。
import pandas as pdfrom datetime import datetimedf=pd.read_excel(r'C:/Users/尚天強(qiáng)/Desktop/銷售訂單明細(xì).xlsx',parse_dates=['發(fā)貨日期'])df.head()

訂單前十的產(chǎn)品
查看訂單量前十的產(chǎn)品都有哪些?使用value_counts()函數(shù)進(jìn)行分組計數(shù),默認(rèn)是降序排列,同時使用head函數(shù)選取前十個數(shù)據(jù)結(jié)果,其中充電寶訂單數(shù)排第一位。
count_ten=df['產(chǎn)品名稱'].value_counts().head(10)count_ten

數(shù)字不太直觀,我們導(dǎo)入matplotlib包將訂單量可視化進(jìn)行展示。
import matplotlib.pyplot as plt#讓圖表直接在Jupyter Notebook中展示出來%matplotlib inlineplt.rcParams["font.sans-serif"] = 'SimHei' #中文亂碼問題plt.rcParams['axes.unicode_minus']?=?False???#負(fù)號無法顯示%config?InlineBackend.figure_format?=?'svg'??#設(shè)置圖表為數(shù)量圖格式形式
value_counts函數(shù)是默認(rèn)降序排列,可以使用sort_values函數(shù)升序排列后,使用plot.barh函數(shù)做一個條形圖,由圖可以看出訂單數(shù)排前十的產(chǎn)品,且貼膜和數(shù)據(jù)線這兩款產(chǎn)品之間訂單數(shù)出現(xiàn)顯著差異。
count_ten=count_ten.sort_values()count_ten.plot.barh()

銷售量前十的產(chǎn)品
查看銷售量前十的產(chǎn)品,按照產(chǎn)品名稱分組求和,然后使用sort_values函數(shù)設(shè)置ascending=False參數(shù)進(jìn)行降序排列。
sale_ten=df.groupby('產(chǎn)品名稱')['銷售數(shù)量'].sum().sort_values(ascending=False).head(10)sale_ten

使用條形圖直觀地展示數(shù)據(jù)結(jié)果,手機(jī)殼的銷量排第一位,表明手機(jī)殼更新?lián)Q代速度比較快,產(chǎn)品需求多。
sale_ten_sort=sale_ten.sort_values()sale_ten_sort.plot.barh()

每個分撥中心中心的銷量占比
每款產(chǎn)品都是由分撥中心始發(fā),查看每個分撥中心中心的銷量占比,使用groupby函數(shù)根據(jù)發(fā)貨地分組求和,同時除以總銷量,即可得到每個分撥中心的銷量占比。
fahuoz_count=df.groupby('發(fā)貨地')['銷售數(shù)量'].sum()/df['銷售數(shù)量'].sum()fahuoz_count

使用plot.pie函數(shù)繪制一個餅圖,由圖可以看出上海分撥中心的的銷量占比最高,達(dá)到37.89%,鄭州分撥中心的銷量占比最低,僅有11.38%。
fahuoz_count.plot.pie(figsize=(5, 5),startangle=90,autopct='%1.2f%%')
哪些月份訂單量最多
查看哪些月份的訂單最多,這里篩選2018年1月1日到2018年12月31日的數(shù)據(jù),同時使用map和lambda函數(shù)提取年月,將提取的年月數(shù)據(jù)格式變化為字符類型。
#篩選2018年數(shù)據(jù)this_year=df[(df['訂單日期']>=datetime(2018,1,1))&(df['訂單日期']<=datetime(2018,12,31))]this_year=this_year.copy()this_year['月份']=this_year['訂單日期'].map(lambda x:str(x.strftime('%Y%m')))#提取月份數(shù)據(jù)this_year

使用dtypes函數(shù)查看數(shù)據(jù)類型,可以看到初始的訂單日期為日期類型,提取后的月份字段變?yōu)樽址愋汀?br>
this_year.dtypes
計算每個月的訂單數(shù),按照月份進(jìn)行分組計數(shù),其中nunique函數(shù)可以實現(xiàn)非重復(fù)計數(shù)功能。
this_year.groupby('月份')['訂單號'].nunique()
使用plot函數(shù)繪制一個折線圖,由圖可以看出2018年12月的訂單數(shù)最多,2018年2月份的訂單數(shù)最少。
this_year.groupby('月份')['訂單號'].nunique().plot(figsize=(6, 4))
對比Excel系列圖書累積銷量達(dá)15w冊,讓你輕松掌握數(shù)據(jù)分析技能,可以在全網(wǎng)搜索書名進(jìn)行了解選購:

