上一篇,我們利用mysql分析了淘寶用戶行爲–利用mysql進行電商數據分析
這次同樣的我們利用不同的工具python進行分析。
數據集來源: 阿里雲池
樣本量: 3835331
第一步數據導入
import numpy as np
import pandas as pd
df=pd.read_csv('UserBehavior.csv')
df.columns = ['user_id','item_id','category_id','behavior','time_stamp'] #給數據附上列字段名
df.head()
df.info()
df.describe()
第二步數據清洗
df.isnull().sum() #第一步處理空值
df[df['time_stamp'].isnull()]#找到時間戳爲空值的一行
df=df.dropna(axis=0,how='any')#直接刪去空值
df=df.drop_duplicates()#第二步刪去重複值
df.head()
import datetime
import time
df['time_stamp'] = pd.to_datetime(df['time_stamp'],unit = 's') #將格林威治時間轉化成日期和時刻
df['date_ymd']=df.time_stamp.dt.date #提取其中日期部分
df['date_time']=df.time_stamp.dt.hour #提取其中小時部分
df['weekday'] = df['time_stamp'].dt.weekday_name #將日期對應的星期數表示出來
del df['time_stamp'] # 刪去原有的時間戳列
df.head(5)
df['date_ymd'].value_counts()#看看數據分佈,發現基本集中在11月24日-12月03日
df['date_ymd'] = df['date_ymd'][(df['date_ymd']>=datetime.date(2017,11,25)) & (df['date_ymd']<=datetime.date(2017,12,1))]#篩選出11月25日到12月1日這七天的數據
df=df.dropna(axis=0,how='any')#刪去範圍之外的行數
print(df.shape)#最後7天數據量在278萬左右
(2784900, 7)
第三步正式開始數據分析
#正式開始數據分析#
pv=df.groupby(by='behavior').count()#總pv爲3433848人次,收藏達到11萬,加購的有21萬,其中76705的人買了商品
uv=df.drop_duplicates('user_id').count()#獨立訪客數爲37372,
uv
付費用戶數及比例
buy = df[df['behavior'] == 'buy']
buy1=buy.drop_duplicates('user_id').count()
buy1['user_id']#付費用戶數爲25400,
bili=25400/37372 #付費比例爲68%
復購用戶數及比例
dbuy = buy.groupby(buy['user_id']).count()
dbuy[dbuy['behavior']>=2].count() #復購的用戶數爲16712
fugoulv=16712/25400 #復購率65.8%
時間維度分析
#時間維度分析#
df['behavior'].groupby(by =df['date_ymd']).value_counts()#用power bi 或EXcel 畫圖
用戶轉化率,漏斗
#用戶行爲轉化漏斗#
df['behavior'].value_counts()
pv_to_cart=153624/2493512
pv_to_fav=80626/2493512
pv_to_buy=57138/2493512
print(pv_to_cart,pv_to_fav,pv_to_buy)#加購率在6.2%,收藏率在3.2%,購買率在2.3%
#所以,關鍵環節是如何讓用戶在瀏覽後迅速喜歡上商品併產生購買意向,應該思考的是個性化推薦是否真的符合用戶的購買需求#
加購率0.062,收藏率 0.032,購買率 0.023。