哪个是更早的时间 date_淘宝用户行为分析(漏斗模型+pv,uv,pv/uv,复购率,用户活跃时间段)...
數據來源https://tianchi.aliyun.com/dataset/dataDetail?dataId=46
用戶行為表:用戶ID,商品ID,用戶行為。用戶地點,商品大類ID,時間
需求:該數據為淘寶2014年用戶消費行為表,計算各網頁的轉換率,每日用戶活躍時間,尋找提高銷量的辦法。
成果:
從該圖中,用戶瀏覽到收藏或加購物車的轉換率相對較低,只有5%左右,從瀏覽到購買的轉化率只有1%左右,可以優化商品的推薦商品的推薦機制,優化用戶搜索效率,提高用戶購買的比例。
需求:求頁面的pv,uv,pv/uv,復購率
在雙十二那天訪問量迅速增加,需要抓住機會日常情況下,每日平均訪問次數在6-7次之間,雙十二高達9次需求:找到每天用戶哪個時間段活躍
瀏覽用戶在一天中的行為,用戶在0-6點是睡覺時間,6點過后用戶量逐漸增多,10點到達頂峰,推測是用戶起床時間。這時的瀏覽量處于一天中較小的時候。
晚上6點過后,用戶量迅速上升,成交量也在增加,在晚上10點瀏覽慢慢下降,推測為用戶休息時間。如果要安排促銷活動,最好在晚上6-10點這個時間段內,效果最好。
分析過程:
1、導入數據
import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline plt.style.use('ggplot') df=pd.read_csv('tianchi_mobile_recommend_train_user.csv')2、查看屬性
需要把item_category刪去,time分割。
3、去重,去缺失值
#把time除空 df=df[~df['time'].isnull()] #把time分割 df['date']=df.time.apply(lambda x:x.split(' ')[0]) df['time']=df.time.apply(lambda x:x.split(' ')[1]) #把user_geohash去除 df=df.drop(['user_geohash'],axis=1) #去重 df=df.drop_duplicates()4、數據一致化處理
#behavior 列上有1-4,把其對應為瀏覽,收藏,加購物車,購買 def df_beh(x):s={1:'pv',2:'favor',3:'cart',4:'buy'}return s[x] df['behavior_type']=df.behavior_type.apply(df_beh)5、轉化率分析
#漏斗模型分析 df_count=df.behavior_type.value_counts() print("瀏覽-收藏+加購物車的轉化率:",(df_count.cart+df_count.favor)/df_count.pv) print('收藏+加購物車-購買的轉化率:',df_count.buy/(df_count.cart+df_count.favor)) print('瀏覽-購買轉化率:',df_count.buy/df_count.pv)6、生成漏斗模型
#生成漏斗 #數據整理為漏斗格式 s=[('pv',df_count.pv),('favor',df_count.favor),('cart',df_count.cart),('buy',df_count.buy)] #轉化成百分比形式 max_count=s[0][1] s1=[(x,round(y*100/max_count,2))for x,y in s] #導入模塊 import pyecharts.options as opts from pyecharts.charts import Funnel #建立空漏斗,把數據加到空漏斗里 funnel=Funnel() funnel.add('用戶比例',s1) #顯示 funnel.render_notebook()7、有過購買行為的用戶占比
#有過購買行為的用戶量占比 #把購買行為的用戶提取,去重 df_buy=df[df['behavior_type']=='buy'].drop_duplicates('user_id').count() #把全體用戶去重,計數 df_user=df.drop_duplicates('user_id').count() #除 print('有過購買行為的用戶占比:',df_buy[0]/df_user[0])8、復購率
#用戶的復購率 #提取購買次數超過1的用戶 rebuy_user=df[df['behavior_type']=='buy'].groupby(['user_id']).count() (rebuy_user[rebuy_user['behavior_type']>=2].count()/df_buy[0])[0]9、不同時間段用戶行為分析
#日均訪問量 df_pv=df[df['behavior_type']=='pv'].groupby('date').count().iloc[:,:1].rename(columns={'user_id':'pv_count'}) #uv df_uv_a=df[df['behavior_type']=='pv'].groupby(['date','user_id']).count().reset_index() df_uv=df_uv_a.groupby('date').count().iloc[:,:1].rename(columns={'user_id':'uv_count'}) #pv/uv mean_df=pd.concat([df_pv,df_uv],axis=1) mean_df['pv/uv']=mean_df['pv_count']/mean_df['uv_count']10、畫圖
#畫圖xticks和rot分別顯示橫坐標值和調整橫坐標顯示長度。title顯示標題 df_pv.plot(kind='line',xticks=range(0,31),rot=90,title='pv') df_uv.plot(kind='line',xticks=range(0,31),rot=90,title='uv') mean_df['pv/uv'].plot(kind='line',xticks=range(0,31),rot=90,title='uv')11、用戶活躍
#用戶活躍時間段分析 dpv=df[df['behavior_type']=='pv'].groupby('time').count().iloc[:,:1].rename(columns={'user_id':'pv'}) dfavor=df[df['behavior_type']=='favor'].groupby('time').count().iloc[:,:1].rename(columns={'user_id':'favor'}) dcart=df[df['behavior_type']=='cart'].groupby('time').count().iloc[:,:1].rename(columns={'user_id':'cart'}) dbuy=df[df['behavior_type']=='buy'].groupby('time').count().iloc[:,:1].rename(columns={'user_id':'buy'}) #連接表(pv值太大,單獨做圖) daily_df=pd.concat([dfavor,dcart,dbuy],axis=1) #作圖 daily_df.plot(xticks=range(25),rot=90) dpv.plot(xticks=range(25),rot=90)參考:淘寶用戶行為數據-探索性分析-天池實驗室-阿里云天池
總結
以上是生活随笔為你收集整理的哪个是更早的时间 date_淘宝用户行为分析(漏斗模型+pv,uv,pv/uv,复购率,用户活跃时间段)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3字典有序还是无序_无序字典
- 下一篇: python常用的集成开发环境有哪些_p