利用Python對電商銷售數據進行分析
發布時間:2022-04-18 20:30 瀏覽次數:次
一.數據集介紹
此次的數據集來自kaggle的關于在線零售業務的交易數據,該公司主要銷售禮品,大部分出售對象是面向批發商。
二.數據集字段介紹
數據包含541910行,8個字段,字段內容為:
InvoiceNo: 訂單編號,每筆交易有6個整數,退貨訂單編號開頭有字母’C’。
StockCode: 產品編號,由5個整數組成。
Description: 產品描述。
Quantity: 產品數量,有負號的表示退貨
InvoiceDate: 訂單日期和時間。
UnitPrice: 單價(英鎊),單位產品的價格。
CustomerID:客戶編號,每個客戶編號由5位數字組成。
Country: 國家的名稱,每個客戶所在國家/地區的名稱。
三.分析內容
1.購買商品數前十的國家是?
2.交易額前十的國家是?
3.哪些月份銷量較佳?
4.客單價多少?
5.用戶消費行為分析
四. 數據處理分析過程
1.數據清洗
利用Python語言進行數據分析,開發工具有Jupyter Notebook。
導入庫,查看數據
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('data.csv',encoding='ISO-8859-1')
df.head()
1
2
3
4
5
6
df.info()
1
可以看出,CustomID存在部分缺失,無法進行填充,需要刪除缺失的數據。InvoiceDate格式需要調整,方便后續分析。數據只有產品數量和單價,沒有銷售金額,要根據產品數量和單價建立一個銷售金額的新字段。
刪除缺失CustomID對應數據內容。
df1 = df.dropna(how='any')
1
修改InvoiceDate格式,只取年月作為日期內容。
df1['InvoiceDate'] = pd.to_datetime(df1['InvoiceDate']) #12/1/2010 8:26轉換為2010-12-01
df1['InvoiceDate'] =df1['InvoiceDate'].apply(lambda x: x.strftime('%Y-%m-%d')) #將datetime64[ns] 轉為 object
1
2
新建一個銷售金額的字段,即用產品數量乘以單價。
df1['Price'] = df1['Quantity']*df1['UnitPrice']
1
完成以上數據清洗后,結果如下:
2.數據分析
【第一個問題:購買商品數前十的國家是?】
獲取產品數量大于0,按國家分組,對產品數量進行求和,從大到小進行排序,取前十的國家
df1[df1['Quantity']>0].groupby('Country')['Quantity'].sum().sort_values(ascending=False).head(10)
1
英國購買商品數遠遠大于其他國家,這可能由于公司位于英國,英國是該公司商品銷售的主要對象。
【第二個問題:交易額前十的國家是?】
獲取產品數量大于0,按國家分組,對銷售金額進行求和,從大到小進行排序
df1[df1['Quantity']>0].groupby('Country')['Price'].sum().sort_values(ascending=True).head(10)
1
可以看出:英國的交易額最大,由于購買數最多,交易額理所當然也是最大。除此之外,荷蘭,愛爾蘭,德國,法國也是主要消費國家,需要重點關注。
【第三個問題:哪些月份銷量較佳?】
df1[df1['Quantity']>0].groupby('InvoiceDate')['Quantity'].sum().sort_values(ascending=False).head(20)
1
銷量最高的是12月份,其次是1月份,大部分銷量較佳集中在下半年,這是由于該產品是禮品,在下半年節日較多,加上促銷優惠,銷量比上半年月份多。
【第四個問題:客單價多少?】
sumPrice=df1[df1['Quantity']>0]['Price'].sum()
countID=df1[df1['Quantity']>0]['InvoiceNo'].count()
avgPrice = sumPrice/countID
print(avgPrice)
1
2
3
4
客單價即平均交易金額,是指平均每個客戶交易金額,客單價等于成交金額/成交用戶數。
銷售額是由客單價和用戶數所決定的,要提升產品的銷售額,除了盡可能多地吸引客流,增加顧客交易次數以外,提高客單價也是非常重要的途徑。
【第五個問題:用戶消費行為分析】
df1[df1['Quantity']>0].groupby('CustomerID').agg({'InvoiceNo':'nunique',
'Quantity':'sum',
'Price':'sum'}).describe()
1
2
3
用戶消費行為分析主要從用戶消費次數,用戶消費金額,用戶購買產品數量這三個維度進行分析。
五.總結
通過以上計算可看出:
用戶平均消費4次,有的客戶甚至消費高達210次,是產品的忠誠客戶。
用戶平均消費金額為2053元,而75%的用戶消費金額只有1661,可見,有些用戶消費金額較大,屬于非常有價值的用戶,需要重點保持關注。
用戶購買產品數量平均高達1194件,由于銷售對象主要是批發商,算是正常的數量數。
本文來源于網絡,若有侵權請聯系3449817223#qq.com,將在第一時間刪除。