數(shù)據(jù)分析——實戰(zhàn)|淘寶用戶行為分析案例

一柳刮、項目背景

本數(shù)據(jù)報告以淘寶app平臺為數(shù)據(jù)集,通過行業(yè)的指標對淘寶用戶行為進行分析痒钝,從而探索淘寶用戶的行為模式秉颗,具體指標包括:日PV和日UV分析,付費率分析送矩,復購行為分析蚕甥,漏斗流失分析和用戶價值RFM分析。

二栋荸、數(shù)據(jù)來源

https://tianchi.aliyun.com/dataset/dataDetail?dataId=46&userId=1

三菇怀、提出問題

1.日PV有多少

2.日UV有多少

3.付費率情況如何

4.復購率是多少

5.漏斗流失情況如何

6.用戶價值情況

四凭舶、理解數(shù)據(jù)

本數(shù)據(jù)集共有104萬條左右數(shù)據(jù),數(shù)據(jù)為淘寶APP2014年11月18日至2014年12月18日的用戶行為數(shù)據(jù)爱沟,共計6列字段帅霜,列字段分別是:

user_id:用戶身份,脫敏

item_id:商品ID呼伸,脫敏

behavior_type:用戶行為類型(包含點擊义屏、收藏、加購物車蜂大、支付四種行為闽铐,分別用數(shù)字1、2奶浦、3兄墅、4表示)

user_geohash:地理位置

item_category:品類ID(商品所屬的品類)

time:用戶行為發(fā)生的時間

需要完整代碼,可以私聊

五澳叉、數(shù)據(jù)清洗

# coding:utf-8
import pandas as pd
import numpy as py
import matplotlib.pyplot as plt
import seaborn as sns
import re
#設(shè)置列數(shù)據(jù)全顯示
pd.set_option('display.max_columns', None)
data_user = pd.read_csv(r'.\tianchi_mobile_recommend_train_user.csv')
missingTotal = data_user.isnull().sum()
missingExist = missingTotal[missingTotal > 0]
missingExist = missingExist.sort_values(ascending=False)
print(missingExist)
image.png
print(missingTotal)
image.png

存在缺失值的是User_geohash隙咸,有717785條,不能刪除缺失值成洗,因為地理信息在數(shù)據(jù)集收集過程中做過加密轉(zhuǎn)換五督,因此對數(shù)據(jù)集不做處理。

data_user.head()
image.png
# 拆分數(shù)據(jù)集
data_user['date'] = data_user['time'].map(lambda s: re.compile(' ').split(s)[0])
data_user['hour'] = data_user['time'].map(lambda s: re.compile(' ').split(s)[1])
data_user.head()
image.png
#查看data_user數(shù)據(jù)集數(shù)據(jù)類型:
data_user.dtypes
image.png
#發(fā)現(xiàn)time列和date列應(yīng)該轉(zhuǎn)化為日期類數(shù)據(jù)類型瓶殃,hour列應(yīng)該是字符串數(shù)據(jù)類型充包。

#數(shù)據(jù)類型轉(zhuǎn)化

data_user['date']=pd.to_datetime(data_user['date'])

data_user['time']=pd.to_datetime(data_user['time'])

data_user['hour']=data_user['hour'].astype('int64')

data_user.dtypes
image.png
#異常值處理

data_user = data_user.sort_values(by='time',ascending=True)

data_user = data_user.reset_index(drop=True)

data_user.describe()
image.png

通過觀察數(shù)據(jù)集的四分位數(shù),總數(shù)遥椿,平均值基矮,方差等,發(fā)現(xiàn)數(shù)據(jù)集并無異常值存在冠场。

六家浇、用戶行為分析

(1)pv和uv分析

PV(訪問量):即Page View, 具體是指網(wǎng)站的是頁面瀏覽量或者點擊量,頁面被刷新一次就計算一次碴裙。

UV(獨立訪客):即Unique Visitor,訪問您網(wǎng)站的一臺電腦客戶端為一個訪客钢悲。

1)日訪問量分析

# pv_daily記錄每天用戶操作次數(shù),uv_daily記錄每天不同的上線用戶數(shù)量
pv_daily = data_user.groupby('date')['user_id'].count().reset_index().rename(columns={'user_id': 'pv'})

uv_daily = data_user.groupby('date')['user_id'].apply(lambda x: x.drop_duplicates().count()).reset_index().rename(
    columns={'user_id': 'uv'})

fig, axes = plt.subplots(2, 1, sharex=True)

pv_daily.plot(x='date', y='pv', ax=axes[0])

uv_daily.plot(x='date', y='uv', ax=axes[1])
axes[0].set_title('pv_daily')
image.png

結(jié)果顯示如上圖所示舔株,在雙十二期間莺琳,pv和uv訪問量達到峰值,并且可以發(fā)現(xiàn)督笆,uv和pv兩個訪問量數(shù)值差距比較大芦昔,同時,因為數(shù)據(jù)集總?cè)藬?shù)大約是10000人左右娃肿,因此咕缎,通過nv值可以分析出雙十二期間淘寶用戶的日活躍大概是45%浮動珠十。

#小時訪問量分析#pv_hour記錄每小時用戶操作次數(shù),uv_hour記錄每小時不同的上線用戶數(shù)量

pv_hour=data_user.groupby('hour')['user_id'].count().reset_index().rename(columns={'user_id':'pv'})

uv_hour=data_user.groupby('hour')['user_id'].apply(lambda x:x.drop_duplicates().count()).reset_index().rename(columns={'user_id':'uv'})

fig,axes=plt.subplots(2,1,sharex=True)

pv_hour.plot(x='hour',y='pv',ax=axes[0])
uv_hour.plot(x='hour',y='uv',ax=axes[1])

axes[0].set_title('pv_hour')

axes[1].set_title('uv_hour')
image.png

圖表顯示:pv和uv在凌晨0-5點期間波動情況相同凭豪,都呈下降趨勢焙蹭,訪問量都比較小,同時在晚上18:00左右嫂伞,pv波動情況比較劇烈孔厉,相比來看uv不太明顯,因此晚上18:00以后是淘寶用戶訪問app的活躍時間段帖努。

#不同行為類型用戶pv分析

pv_detail=data_user.groupby(['behavior_type','hour'])['user_id'].count().reset_index().rename(columns={'user_id':'total_pv'})

fig,axes=plt.subplots(2,1,sharex=True)

sns.pointplot(x='hour',y='total_pv',hue='behavior_type',data=pv_detail,ax=axes[0])

sns.pointplot(x='hour',y='total_pv',hue='behavior_type',data=pv_detail[pv_detail.behavior_type!=1],ax=axes[1])

axes[0].set_title('pv_different_behavior_type')
#axes[1].set_title('uv_different_behavior_type')
image.png

有圖表顯示:點擊這一用戶行為相比較于其他三類用戶行為撰豺,pv訪問量較高,同時三種用戶行為的波動情況基本一致拼余,因此晚上這一時間段不管哪一種用戶行為污桦,pv訪問量都是最高的。從圖2可以看出匙监,加入購物車這一用戶行為的pv總量高于收藏的總量凡橱,因此在后續(xù)漏斗流失分析中,用戶類型3應(yīng)該在2之前分析亭姥。

七稼钩、用戶消費行為分析

(1)用戶購買次數(shù)情況分析
data_user_buy=data_user[data_user.behavior_type==4].groupby('user_id')['behavior_type'].count()
sns.distplot(data_user_buy,kde=False)
plt.title('daily_user_buy')
image.png

圖表顯示:淘寶用戶消費次數(shù)普遍在10次以內(nèi),因此需要重點關(guān)注購買次數(shù)在10次以上的消費者用戶群體达罗。

(2)日ARPPU

ARPPU(average revenue per paying user)是指從每位付費用戶身上獲得的收入坝撑,它反映的是每個付費用戶的平均付費額度。

ARPPU=總收入/活躍用戶付費數(shù)量

因為本數(shù)據(jù)集中沒有消費金額氮块,因此在計算過程中用消費次數(shù)代替消費金額

人均消費次數(shù)=消費總次數(shù)/消費人數(shù)

data_use_buy1=data_user[data_user.behavior_type==4].groupby(['date','user_id'])['behavior_type'].count().reset_index().rename(columns={'behavior_type':'total'})

data_use_buy1.groupby('date').apply(lambda x:x.total.sum()/x.total.count()).plot()

plt.title('daily_ARPPU')
image.png

圖表顯示:平均每天消費次數(shù)在1-2次之間波動绍载,雙十二期間消費次數(shù)達到最高值。

(3)日ARPU

ARPU(Average Revenue Per User) :平均每用戶收入滔蝉,可通過 總收入/AU 計算得出。它可以衡量產(chǎn)品的盈利能力和發(fā)展活力塔沃。

活躍用戶數(shù)平均消費次數(shù)=消費總次數(shù)/活躍用戶人數(shù)(每天有操作行為的為活躍)

data_user['operation']=1

data_use_buy2=data_user.groupby(['date','user_id','behavior_type'])
['operation'].count().reset_index().rename(columns={'operation':'total'})

data_use_buy2.groupby('date').apply(lambda 
x:x[x.behavior_type==4].total.sum()/len(x.user_id.unique())).plot()

plt.title('daily_ARPU')
image.png

(4)付費率

付費率=消費人數(shù)/活躍用戶人數(shù)
data_use_buy2.groupby('date').apply(lambda 
x:x[x.behavior_type==4].total.count()/len(x.user_id.unique())).plot()
plt.title('daily_afford_rate')
image.png

(5)同一時間段用戶消費次數(shù)分布

data_user_buy3=data_user[data_user.behavior_type==4].groupby(['user_id','date','h
our'])['operation'].sum().rename('buy_count')

sns.distplot(data_user_buy3)

print('大多數(shù)用戶消費:{}次'.format(data_user_buy3.mode()[0]))
image.png

八蝠引、復購情況分析

#復購情況,即兩天以上有購買行為,一天多次購買算一次#復購率=有復購行為的用戶數(shù)/有購買行為的用戶總數(shù)

date_rebuy=data_user[data_user.behavior_type==4].groupby('user_id')
['date'].apply(lambda x:len(x.unique())).rename('rebuy_count')

print('復購率:',round(date_rebuy[date_rebuy>=2].count()/date_rebuy.count(),4))

復購率: 0.8717

#所有復購時間間隔消費次數(shù)分布

data_day_buy=data_user[data_user.behavior_type==4].groupby(['user_id','date']).o
peration.count().reset_index()

data_user_buy4=data_day_buy.groupby('user_id').date.apply(lambda 
x:x.sort_values().diff(1).dropna())

data_user_buy4=data_user_buy4.map(lambda 
x:x.days)data_user_buy4.value_counts().plot(kind='bar')

plt.title('time_gap')

plt.xlabel('gap_day')

plt.ylabel('gap_count')
image.png

多數(shù)用戶復購率為0.4693蛀柴,消費次數(shù)隨著消費時間間隔的增加而不斷下降螃概,在1-10天之內(nèi)復購次數(shù)比較多,10天之后復購次數(shù)淘寶用戶很少在進行復購鸽疾,因此需要重視10天之內(nèi)的淘寶用戶復購行為吊洼,增加用戶復購。不同用戶平均復購時間呈正態(tài)分布制肮,但是總體來看冒窍,呈現(xiàn)逐漸下降趨勢递沪。多數(shù)淘寶用戶平均復購時間集中在1-5天時間間隔內(nèi)。

九综液、漏斗流失分析

漏斗分析是一套流程式數(shù)據(jù)分析款慨,它能夠科學反映用戶行為狀態(tài)以及從起點到終點各階段用戶轉(zhuǎn)化率情況的重要分析模型。

behavior_data = data_user.groupby('behavior_type')['user_id'].count().reset_index().rename(columns = {'user_id':'pv'})
behavior_data.head()
image.png
click_to_collect_and_cart=(behavior_data.at[1, 'pv'] + behavior_data.at[2, 'pv']) / behavior_data.at[0, 'pv']
print("點擊到收藏/購物車轉(zhuǎn)化率: ",click_to_collect_and_cart)
collect_and_cart_to_buy=behavior_data.at[3, 'pv']/(behavior_data.at[1, 'pv'] + behavior_data.at[2, 'pv'])
print("收藏/購物車到購買轉(zhuǎn)化率: ",collect_and_cart_to_buy)
image.png

希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助谬莹,每天進步一點點檩奠,加油。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末附帽,一起剝皮案震驚了整個濱河市埠戳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蕉扮,老刑警劉巖乞而,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異慢显,居然都是意外死亡爪模,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門荚藻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屋灌,“玉大人,你說我怎么就攤上這事应狱」补” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵疾呻,是天一觀的道長除嘹。 經(jīng)常有香客問我,道長岸蜗,這世上最難降的妖魔是什么尉咕? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮年缎,結(jié)果婚禮上铃慷,老公的妹妹穿的比我還像新娘犁柜。我一直安慰自己,他們只是感情好扒腕,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布袜匿。 她就那樣靜靜地躺著居灯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪义锥。 梳的紋絲不亂的頭發(fā)上拌倍,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天柱恤,我揣著相機與錄音找爱,去河邊找鬼。 笑死车摄,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的变屁。 我是一名探鬼主播意狠,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼摄职,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了谷市?” 一聲冷哼從身側(cè)響起迫悠,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤创泄,失蹤者是張志新(化名)和其女友劉穎鞠抑,沒想到半個月后搁拙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年兴垦,在試婚紗的時候發(fā)現(xiàn)自己被綠了探越。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡窑业,死狀恐怖钦幔,靈堂內(nèi)的尸體忽然破棺而出数冬,到底是詐尸還是另有隱情节槐,我是刑警寧澤拐纱,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布铜异,位于F島的核電站妄迁,受9級特大地震影響户辞,放射性物質(zhì)發(fā)生泄漏墩邀。R本人自食惡果不足惜癞蚕,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一帕识、第九天 我趴在偏房一處隱蔽的房頂上張望萌庆。 院中可真熱鬧缭黔,春花似錦食茎、人聲如沸别渔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽稻据。三九已至,卻和暖如春岗喉,著一層夾襖步出監(jiān)牢的瞬間秋度,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工钱床, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荚斯,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓查牌,卻偏偏與公主長得像事期,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子纸颜,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355