電商數(shù)據(jù)分析報(bào)告
時(shí)間:2023-03-15 20:34:01 | 來源:電子商務(wù)
時(shí)間:2023-03-15 20:34:01 來源:電子商務(wù)
無論在線下還是線上電商的交易中,復(fù)購率絕對是能夠衡量一個(gè)產(chǎn)品的重要指標(biāo)。復(fù)購率的高低反應(yīng)了用戶對產(chǎn)品的認(rèn)可度,接受度。一個(gè)復(fù)購率高的產(chǎn)品也可以為公司帶來一大批的忠誠客戶。產(chǎn)品吸引客戶,客戶回購產(chǎn)品,良性循環(huán)是公司穩(wěn)健發(fā)展的標(biāo)準(zhǔn)。
如何用python計(jì)算復(fù)購率?
數(shù)據(jù)集信息該數(shù)據(jù)集是某電商網(wǎng)站一個(gè)月的銷售數(shù)據(jù)。以下是這個(gè)數(shù)據(jù)集中重要的數(shù)據(jù)指標(biāo):
maijiaID:是每一位在該店鋪購買產(chǎn)品的人的id號;
xiadantime:是用戶購買產(chǎn)品提交訂單的時(shí)間;
jiayizhuangtai:是該用戶已經(jīng)付款還是退款,或其他狀態(tài);
chanpinID:是該產(chǎn)品的編號;
num:是用戶的購買數(shù)量;
sale:是用戶一次購物所花費(fèi)的金額。
數(shù)據(jù)導(dǎo)入import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom datetime import datetimedata=pd.DataFrame(pd.read_csv(r'C:/Users/hlyu/Desktop/fugou.csv',encoding='utf-8'))
導(dǎo)入csv格式的文件,用head()方法查看導(dǎo)入數(shù)據(jù)是否正確。
數(shù)據(jù)清洗 1、查看數(shù)據(jù)是否存在缺失值、空值。
查看各字段數(shù)據(jù)的行數(shù),類型,可以看到這次導(dǎo)出的數(shù)據(jù)很整齊,沒有缺失值,也沒有空值。
2.異常值
用describe()顯示出數(shù)據(jù)基本無異常。
雖然整個(gè)數(shù)據(jù)集很完整,也沒有異常值,但這并不代表我們就可以跳過數(shù)據(jù)清洗這一步,直接做分析了。
復(fù)購率要求的是客戶在不同的時(shí)間購買產(chǎn)品的次數(shù),但是很顯然,可能存在客戶會在同一天中進(jìn)行多筆交易,所以我們要把在同一天中進(jìn)行多次購買去重。
在去重之前我們還要看一下交易狀態(tài),因?yàn)槲覀冎挥?jì)算購買成功的客戶。所以要把其他的狀態(tài)的客戶篩選掉。
在交易狀態(tài)中,只有兩種“交易成功”,“付款以后用戶退款成功,交易自動關(guān)閉”,所以現(xiàn)在只需要刪掉“付款以后用戶退款成功,交易自動關(guān)閉”這種狀態(tài)下的所有訂單。
刪掉以后,就只剩下交易成功的訂單了?,F(xiàn)在再來對剩下的數(shù)據(jù)進(jìn)行去重處理。
在數(shù)據(jù)集中,同一天同一個(gè)ID的訂單只保留一個(gè),但是這里下單時(shí)間顯示到了小時(shí)和分鐘,而此處只需要年月日就可以了。所以這里需要用到split('')對時(shí)間進(jìn)行分割(我操作中這一步做在了上一步的前面,順序沒有影響)。
這里需要定義一個(gè)函數(shù)
def splitSaletime(timeColSer): timeList=[] for value in timeColSer: dateStr=value.split(' ')[0] timeList.append(dateStr) timeSer=pd.Series(timeList) return timeSertimeSer=data.loc[:,'xiadantime'] dateSer=splitSaletime(timeSer) data.loc[:,'xiadantime']=dateSer data.head()
然后時(shí)間就被分割出來了,只保留需要的年月日。
由于info()中時(shí)間的類型是object,所以這里還需要對時(shí)間修改類型。
data.loc[:,'xiadantime']=pd.to_datetime(data.loc[:,'xiadantime'], format='%Y-%m-%d', errors='coerce')
顯示結(jié)果,在進(jìn)行重新排序。
現(xiàn)在各字段類型已基本修改好。
接下來就正式開始刪除重復(fù)項(xiàng)的數(shù)據(jù),我們就要把'maijiaID','xiadantime'兩個(gè)字段結(jié)合,相同的就去掉。
Df.duplicated(['jiaoyizhuangtai'])
去重之后得到數(shù)據(jù)
截至到這一步,我們前期的數(shù)據(jù)清洗工作已基本完成,可以對這一部分?jǐn)?shù)據(jù)進(jìn)行分析處理了。
數(shù)據(jù)分析由于計(jì)算的是復(fù)購率,所以需要知道在同一個(gè)ID出現(xiàn)的次數(shù)。統(tǒng)計(jì)出出現(xiàn)2次,3次,多次的用戶數(shù)量。在比上所以不同用戶ID的總數(shù)就可以求出復(fù)購率了。
data0=pd.pivot_table(Df,index=["maijiaID"],values=["num"],aggfunc=[len],fill_value=0).reset_index()
用poivt_table()取出用戶ID出現(xiàn)的次數(shù),結(jié)果如下:
然后我們再取出出現(xiàn)2次的用戶數(shù):
這里也可以看到,不同的用戶ID有27343個(gè)。
購買兩次的用戶數(shù)為3119人。復(fù)購率占比:
同樣的購買三次的復(fù)購率占比:
購買在4次的客戶占比在
購買在5次以上的客戶占比在
可見購買次數(shù)在2次的客戶是最多的,購買在3次以上的客戶比2次少了近四分之三,而購買次數(shù)在5次以上的用戶就更加少了。
針對這種情況:
首先,需要了解該產(chǎn)品的類型,確定該產(chǎn)品是屬于快消品還是購買一次可以用一段時(shí)間的產(chǎn)品。要充分了解產(chǎn)品的特性以及市場該類產(chǎn)品的正常復(fù)購率,確保我們的產(chǎn)品是在一個(gè)健康的狀態(tài)。
如果確定該產(chǎn)品是快速消耗的產(chǎn)品,那就要產(chǎn)品的消耗時(shí)間及人群特性,采用同期群分析,通過對購買2次人群構(gòu)建用戶畫像,分析出用戶有什么共同的特點(diǎn)。找出這些"好"用戶共有的,與你所希望改變的kpi高度相關(guān)的屬性。進(jìn)而針對客戶精準(zhǔn)營銷。增大復(fù)購率的人群數(shù)量。
二:每天平均消費(fèi)金額=總消費(fèi)金額/天數(shù)
Df=Df.sort_values(by='xiadantime', ascending=True)Df=Df.reset_index(drop=True) #最小時(shí)間值startTime=Df.loc[0,'xiadantime'] #最大時(shí)間值 endTime=Df.loc[total-1,'xiadantime'] daysI=(endTime-startTime).days print('天數(shù):',daysI)
這里我們可以知道該店鋪平均每天的銷售產(chǎn)品金額高達(dá)261461元。
這里進(jìn)一步求出平均每次購買金額為145元。這里可以粗略估算出,平均每天在店鋪購買的客戶數(shù)量。
通過漏斗模型也可以分析出一套客戶分層分布情況,可與該漏斗模型分析的購買數(shù)量做對比,并提升每一層客戶留量。
整體分析:
該店鋪的復(fù)購率中購買2次產(chǎn)品的用戶最多??赏ㄟ^精準(zhǔn)營銷多發(fā)展購買2次的人群。
關(guān)鍵詞:報(bào)告,分析,數(shù)據(jù)