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

用戶行為路徑:桑基圖

所以,簡單來說:
漏斗分析:人為設定一條或者若干條漏斗,先有假設再數(shù)據(jù)驗證。
路徑分析:基于用戶所有行為,挖掘出若干條重要的用戶路徑,先有數(shù)據(jù)再驗證假設。
四、用代碼實現(xiàn)—桑基圖
桑基圖,它的核心是對不同點之間,通過線來連接。線的粗細代表流量的大小。
很多工具都能實現(xiàn)桑基圖,比如:Excel、tableau,我們今天要用 Pyecharts 來繪制。
因為沒有用戶行為路徑相關的公開數(shù)據(jù),所以本次實現(xiàn)可視化是根據(jù)泰坦尼克號,其生存與遇難的人的數(shù)據(jù),來分析流向路徑。學會思路,你也可以換成自己公司的用戶行為埋點數(shù)據(jù)。
讀取數(shù)據(jù)
數(shù)據(jù)來源: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é)構:父類→子類→值
從父類到子類,每相鄰的兩個分類變量都需要計算,使用 Pandas 中數(shù)據(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é)點數(shù)據(jù)
需要把所有涉及到的節(jié)點去重規(guī)整在一起。列表內(nèi)嵌套字典的形式去重匯總。
#?生成nodes
nodes?=?[]
#?先添加幾個頂級的父節(jié)點
nodes.append({'name':'C港口'})
nodes.append({'name':'Q港口'})
nodes.append({'name':'S港口'})
#?添加其他節(jié)點
for?i?in?data1[1].unique():????
????dic?=?{}????
????dic['name']?=?i????
????nodes.append(dic)
nodes
組織數(shù)據(jù):定義節(jié)點和流量
數(shù)據(jù)從哪里流向哪里,流量(值)是多少,循環(huán)+字典來組織數(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="桑基圖"))
????.render("/Users/wangwangyuqing/Desktop/image.html")
)

五、總結(jié)
桑基圖是分析用戶路徑的有效方法之一,能非常直觀地展現(xiàn)用戶旅程,幫助我們進一步確定轉(zhuǎn)化漏斗中的關鍵步驟,發(fā)現(xiàn)用戶的流失點,找到有價值的用戶群體,看用戶主要流向了哪里,發(fā)現(xiàn)用戶的興趣點以及被忽略的產(chǎn)品價值,尋找新的機會。
對比Excel系列圖書累積銷量達15w冊,讓你輕松掌握數(shù)據(jù)分析技能,可以在全網(wǎng)搜索書名進行了解選購:

