python开发跟淘宝有关联微_Python_淘宝用户行为分析
一、數據導入與清洗
源數據量有1億余條,為減輕計算量,抽樣總量的20%用于計算分析
#coding=gbk
import numpy as py
import pandas as pd
import datetime
import os
os.chdir('D:/pythonlily/test1')
data=pd.read_csv('UserBehavior.csv',header=None)
data.columns=['用戶id','商品id','商品類目id','行為類型','時間戳']
df=data.sample(frac=0.2)
抽樣后的數量大約2000w,查看下數據集整體情況
官方說時間范圍是2017年11月25日至2017年12月3日之間,但是從這里看出時間有異常值,剔除異常值,只篩選2017年11月25日至2017年12月3日的數據。剔除時間異常值1w+條后,仍有2000w+的數量。
df=df[(df['時間戳']<1512316800)&(df['時間戳']>1511539200)]
將時間戳轉換為日期格式
tt=[]
for i in range(0,len(df)):
row= df['時間戳'].iloc[i]
a = int(row)
date = datetime.datetime.fromtimestamp(a)
targetDate = date.strftime("%Y-%m-%d%H:%M:%S")
tt.append(targetDate)
df['日期']=tt
二、提出問題并計算分析
01用戶行為轉化漏斗,找到需要改進的環節,即uv→pv→(cart+fav)→buy
02從一周的時間維度了解用戶的行為習慣,即計算每日各環節的用戶行為
03從一天24H時間維度了解用戶的行為習慣,即計算用戶各個時間段的用戶行為差別
04不同商品類目中用戶行為的差別分析,購買次數占前80%的品類有多少?
01用戶行為轉化漏斗
uv=len(df['用戶id'].unique())
temp=df[df['行為類型']=='pv'].loc[:,['用戶id']]
pv=len(temp['用戶id'].unique())
temp=df[df['行為類型']=='fav'].loc[:,['用戶id']]
fav=len(temp['用戶id'].unique())
temp=df[df['行為類型']=='cart'].loc[:,['用戶id']]
cart=len(temp['用戶id'].unique())
temp=df[df['行為類型']=='buy'].loc[:,['用戶id']]
buy=len(temp['用戶id'].unique())
所以uv=980383,pv=972254,cart=464816,fav=221842,buy=283387,總體轉化率為buy/uv=28.9%,各環節轉化率漏斗圖如下:
02從一周的時間維度了解用戶的行為習慣
df['日期2']=df['日期'].str[:10] #提取字符串類型中的日期
ff=df[['用戶id','行為類型','日期2']]
pd.pivot_table(ff,index=['日期2'],columns=['行為類型'],aggfunc='count',fill_value=0)
由此可知,周末(12/2、12/3)用戶的各種行為數明顯高于其他日期,這很正常。看看轉化率:
一般情況下,用戶選中心儀的商品直接購買,少部分用戶先收藏或者加入購物車后再付款購買。上圖顯示周末的收藏+購物車的轉化率顯著上升、購買率有所下滑的,可能用戶在周末時間比較充裕、貨比三家的行為更多,購買行為比工作日更加理性。
03從一天24H時間維度了解用戶的行為習慣
df['時刻']=df['日期'].str[11:13]
dd=df[['用戶id','時刻','行為類型']]
pd.pivot_table(dd,index='時刻',columns='行為類型',aggfunc='count')
一天中凌晨3~6點的用戶量是最少的,白天11~19點這8個小時,各種用戶行為發生的數量是比較平穩的,晚上8點后至11點用戶的訪問量快速上升,達到最高峰 。
收藏+購物車的轉化率比較穩定,但是購買率最高時段是上午10點~12點,均有30%以上的轉化率,用戶量最高峰的22~23點反而購買率較低,可能也是白天沒有晚上時間充裕,購買行為更加干脆。
04不同商品類目中用戶行為的差別分析
計算購買數最多的商品類目id,并查看前20位的購買行為的差別
cc=df[['用戶id','商品類目id','行為類型']]
re=pd.pivot_table(cc,index='商品類目id',columns='行為類型',aggfunc='count',fill_value=0)
re=re.reset_index()
re.columns=['商品類目id ','buy','cart','fav','pv']
re=re.sort_values('buy',ascending=False)
re.head(20)
顯然購買的最多的商品類目,其瀏覽點擊、收藏、加購物車的行為數量不一定是最高的,即轉化率高、而人氣不一定最高,大膽猜測下轉化率高的類目為男性剛需商品,人氣高的商品類目為女性所需商品。
re['購買次數占比']=re['buy']/re['buy'].sum()
re['購買次數累計占比']=re['購買次數占比'].cumsum()
re['購買次數前0.8']=re['購買次數累計占比']<=0.8
re.groupby(['購買次數前0.8']).size()
購買次數前0.8
False 8038
True 687
dtype: int64
所以貢獻80%購買次數占比的商品類目個數是687,占所有類目的per=687/8725=8%。
三、結論
1、總體的用戶購買率為28.9%,購買轉化率與行業的標準進行比較,后面可以采取活動(用戶細分,轉化路徑細查)提高購買轉化率。
2、該商鋪的用戶行為周末比工作日更加活躍,晚上比白天更活躍,并于22:00~23:00點達到活躍高峰值,運營人員可根據活躍時間進行相關的活動;
3、針對不同品類的購買轉化率采取不同的策略,提高已購品類的轉化率,一方面,對未被購買的品類進行分析,找出原因,促成購買。
總結
以上是生活随笔為你收集整理的python开发跟淘宝有关联微_Python_淘宝用户行为分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html博客源码_5分钟搭建私人Java
- 下一篇: java的栈堆的理解_理解堆与栈 - 一