太酷了!手把手教你用 Python 繪制桑基圖! | 用戶(hù)行為路徑分析
作者:python與數(shù)據(jù)分析
鏈接:https://www.jianshu.com/p/16ccab26360f
公眾號(hào)后臺(tái)回復(fù):「Python繪制?;鶊D」,即可獲取本文完整數(shù)據(jù)。
本期視頻:太酷了!手把手教你用 Python 繪制?;鶊D!
對(duì)于很多產(chǎn)品來(lái)說(shuō),分析用戶(hù)行為都是非常重要的。用戶(hù)分析能推動(dòng)產(chǎn)品的迭代,為精準(zhǔn)營(yíng)銷(xiāo)提供一些定制化服務(wù),驅(qū)動(dòng)我們做一些產(chǎn)品上的決策。常用的用戶(hù)專(zhuān)題分析方法,包括用戶(hù)分群、留存分析、轉(zhuǎn)化分析、行為路徑分析和事件分析、用戶(hù)畫(huà)像、用戶(hù)增長(zhǎng)等。
那么,本篇文章會(huì)為大家重點(diǎn)介紹用戶(hù)行為路徑分析,并結(jié)合可視化圖表——?;鶊D,來(lái)實(shí)現(xiàn)落地。
一、什么是用戶(hù)路徑?
用戶(hù)路徑,就是用戶(hù)在網(wǎng)站或 APP 中的訪問(wèn)行為路徑,為了衡量網(wǎng)站/APP的優(yōu)化效果或者營(yíng)銷(xiāo)推廣效果,了解用戶(hù)的行為偏好,要對(duì)訪問(wèn)路徑的數(shù)據(jù)進(jìn)行分析。
二、用戶(hù)路徑分析的價(jià)值
用戶(hù)路徑分析和轉(zhuǎn)化分析有點(diǎn)類(lèi)似,轉(zhuǎn)化分析能告訴我們最終有多少用戶(hù)成功轉(zhuǎn)化,多少用戶(hù)流失了。可這些流失的用戶(hù)都去了哪?他們?cè)诹魇岸加惺裁葱袨椋窟@些問(wèn)題轉(zhuǎn)化分析都無(wú)法告訴我們,因此我們需要對(duì)用戶(hù)的行為路徑進(jìn)行分析,以幫助我們更深入了解流失背后的原因。行為路徑分析相比于轉(zhuǎn)化分析記錄的信息要更廣。
用戶(hù)路徑分析,以目標(biāo)事件為起點(diǎn)|終點(diǎn),通過(guò)描述用戶(hù)的行為路徑,可以查看某個(gè)事件節(jié)點(diǎn)用戶(hù)的流向,科學(xué)的路徑分析能夠帶來(lái)以下價(jià)值:
可視化用戶(hù)流向,對(duì)海量用戶(hù)的行為習(xí)慣形成宏觀了解
通過(guò)用戶(hù)路徑分析,可以將整個(gè)用戶(hù)路徑的上下游進(jìn)行可視化展示。即可看到用戶(hù)群體的登錄,跳轉(zhuǎn)、流失、成交等事件的情況。運(yùn)營(yíng)人員可通過(guò)用戶(hù)整體的行為路徑找到不同行為間的關(guān)系,挖掘規(guī)律并找到瓶頸。
定位影響轉(zhuǎn)化的因素,推動(dòng)產(chǎn)品的優(yōu)化與改進(jìn)
路徑分析對(duì)產(chǎn)品設(shè)計(jì)的優(yōu)化與改進(jìn)有著很大的幫助,了解用戶(hù)從登錄到購(gòu)買(mǎi)整體行為的主路徑和次路徑,根據(jù)用戶(hù)路徑中各個(gè)環(huán)節(jié)的轉(zhuǎn)化率,發(fā)現(xiàn)用戶(hù)的行為規(guī)律和偏好,也用于監(jiān)測(cè)和定位用戶(hù)路徑走向中存在的問(wèn)題,判斷影響轉(zhuǎn)化的主要因素和次要因素,也可以發(fā)現(xiàn)某些冷門(mén)的功能點(diǎn)。
三、路徑分析與漏斗分析的區(qū)別
行為路徑分析是用來(lái)追蹤用戶(hù)從某個(gè)事件開(kāi)始到某個(gè)事件結(jié)束過(guò)程中的全部動(dòng)線的分析方法。轉(zhuǎn)化漏斗是人為定義的,而對(duì)于用戶(hù)的行為路徑,我們雖然可以通過(guò)產(chǎn)品設(shè)計(jì)進(jìn)行引導(dǎo),但卻無(wú)法控制。因此我們分析用戶(hù)的行為路徑可以了解用戶(hù)的實(shí)際操作行為,讓產(chǎn)品順應(yīng)用戶(hù),通過(guò)優(yōu)化界面交互讓產(chǎn)品用起來(lái)更加流暢和符合用戶(hù)習(xí)慣,產(chǎn)出更多價(jià)值。

用戶(hù)行為路徑:桑基圖

所以,簡(jiǎn)單來(lái)說(shuō):
漏斗分析:人為設(shè)定一條或者若干條漏斗,先有假設(shè)再數(shù)據(jù)驗(yàn)證。
路徑分析:基于用戶(hù)所有行為,挖掘出若干條重要的用戶(hù)路徑,先有數(shù)據(jù)再驗(yàn)證假設(shè)。
四、用代碼實(shí)現(xiàn)—?;鶊D
?;鶊D,它的核心是對(duì)不同點(diǎn)之間,通過(guò)線來(lái)連接。線的粗細(xì)代表流量的大小。
很多工具都能實(shí)現(xiàn)桑基圖,比如:Excel、tableau,我們今天要用 Pyecharts 來(lái)繪制。
因?yàn)闆](méi)有用戶(hù)行為路徑相關(guān)的公開(kāi)數(shù)據(jù),所以本次實(shí)現(xiàn)可視化是根據(jù)泰坦尼克號(hào),其生存與遇難的人的數(shù)據(jù),來(lái)分析流向路徑。學(xué)會(huì)思路,你也可以換成自己公司的用戶(hù)行為埋點(diǎn)數(shù)據(jù)。
讀取數(shù)據(jù)
數(shù)據(jù)來(lái)源:https://www.kaggle.com/c/titanic
from?pyecharts?import?options?as?opts
from?pyecharts.charts?import?Sankey
import?pandas?as?pd
data?=?pd.read_excel('/Users/wangwangyuqing/Desktop/train.xlsx')
data
整理數(shù)據(jù)結(jié)構(gòu):父類(lèi)→子類(lèi)→值
從父類(lèi)到子類(lèi),每相鄰的兩個(gè)分類(lèi)變量都需要計(jì)算,使用 Pandas 中數(shù)據(jù)透視表,計(jì)算后的數(shù)據(jù)縱向合并成三列。
lis?=?data.columns.tolist()[:-1]
lis1?=?lis[:-1]
lis2?=?lis[1:]
data1?=?pd.DataFrame()
for?i?in?zip(lis1,lis2):??
????datai?=?data.pivot_table('ID',index=list(i),aggfunc='count').reset_index()
????datai.columns=[0,1,2]
????data1?=?data1.append(datai)
data1
生成節(jié)點(diǎn)數(shù)據(jù)
需要把所有涉及到的節(jié)點(diǎn)去重規(guī)整在一起。列表內(nèi)嵌套字典的形式去重匯總。
#?生成nodes
nodes?=?[]
#?先添加幾個(gè)頂級(jí)的父節(jié)點(diǎn)
nodes.append({'name':'C港口'})
nodes.append({'name':'Q港口'})
nodes.append({'name':'S港口'})
#?添加其他節(jié)點(diǎn)
for?i?in?data1[1].unique():????
????dic?=?{}????
????dic['name']?=?i????
????nodes.append(dic)
nodes
組織數(shù)據(jù):定義節(jié)點(diǎn)和流量
數(shù)據(jù)從哪里流向哪里,流量(值)是多少,循環(huán)+字典來(lái)組織數(shù)據(jù)
links?=?[]
for?i?in?data1.values:????
????dic?=?{}????
????dic['source']?=?i[0]????
????dic['target']?=?i[1]????
????dic['value']?=?i[2]
????links.append(dic)
links
數(shù)據(jù)可視化
c?=?(
????Sankey(init_opts=opts.InitOpts(width="1200px",?height="800px",theme='westeros'))
????.add(
????????"",
????????nodes=nodes,
????????links=links,
????????linestyle_opt=opts.LineStyleOpts(opacity=0.2,?curve=0.5,?color="source"),
????????label_opts=opts.LabelOpts(position="right"),
????)
????.set_global_opts(title_opts=opts.TitleOpts(title="?;鶊D"))
????.render("/Users/wangwangyuqing/Desktop/image.html")
)

五、總結(jié)
?;鶊D是分析用戶(hù)路徑的有效方法之一,能非常直觀地展現(xiàn)用戶(hù)旅程,幫助我們進(jìn)一步確定轉(zhuǎn)化漏斗中的關(guān)鍵步驟,發(fā)現(xiàn)用戶(hù)的流失點(diǎn),找到有價(jià)值的用戶(hù)群體,看用戶(hù)主要流向了哪里,發(fā)現(xiàn)用戶(hù)的興趣點(diǎn)以及被忽略的產(chǎn)品價(jià)值,尋找新的機(jī)會(huì)。
本期視頻:太酷了!手把手教你用 Python 繪制?;鶊D!
推薦閱讀
用 Python 批量提取 PDF 的圖片,并存儲(chǔ)到指定文件夾
用 Python 批量提取 PDF 的表格數(shù)據(jù),保存為 Excel
太強(qiáng)了!Python 開(kāi)發(fā)桌面小工具,讓代碼替我們干重復(fù)的工作!
分析了汽車(chē)銷(xiāo)量數(shù)據(jù)下滑后,我發(fā)現(xiàn)了其中的秘密!
最詳細(xì)的 Python 結(jié)合 RFM 模型實(shí)現(xiàn)用戶(hù)分層實(shí)操案例!

