2020-04-10

最近學習的主要內(nèi)容涉及SQL和Python搬设。python的學習主要分為兩個部分:python的基礎語法鞋诗,第三方庫Numpy和pandas膀捷。這是第一次使用python來做項目實戰(zhàn)。該篇主要是自己項目實戰(zhàn)學習過程中的一個詳細分析總結削彬。

一全庸、背景介紹

用戶消費行為分析數(shù)據(jù)源真實可靠,展示的是國外用戶購買CD的消費情況融痛。其主要包含4列:用戶id(id)壶笼,消費的時間(order_date)、購買的產(chǎn)品數(shù)(num_products)以及消費的金額(amount_spend)雁刷。該篇用戶消費行為分析主要分為7個部分覆劈,第1部分簡要介紹項目背景;第2部分介紹整個分析的思想和流程沛励;第3部分到第7部分則是按照第2部分的思路概述進行的詳細分析過程责语。包含數(shù)據(jù)分析前的準備工作——導入包,數(shù)據(jù)清洗以及從三個層面進行詳細數(shù)據(jù)分析目派。

該篇分析報告具體分析思路可參考秦璐-如何7周成為數(shù)據(jù)分析師坤候,提取碼e4r6;

數(shù)據(jù)源:國外用戶購買CD數(shù)據(jù)企蹭,提取碼spve白筹。

二、整體分析思路概述

針對用戶購買CD的消費數(shù)據(jù)谅摄,我們主要通過如下幾個過程進行分析:

1徒河、python包的導入

在利用python進行數(shù)據(jù)分析時,我們常用的包有:

(1)pandas:提供了很多高級的數(shù)據(jù)結構和函數(shù)送漠,這些數(shù)據(jù)結構和函數(shù)的設計使得利用結構化顽照、表格化數(shù)據(jù)的工作快速、簡單螺男、有表現(xiàn)力棒厘。pandas主要有兩個數(shù)據(jù)結構:series和dataframe。

(2)numpy:Numpy是Numerical Python的簡稱下隧。是 python科學計算的核心庫。PYTHON里涉及到科學計算的包括Pandas,sklearn等都是基于numpy進行二次開發(fā)包裝的谓媒,它的功能非常強大淆院。

(3)matplotlib.pyplot:數(shù)據(jù)分析時可視化工具包,當然也可以使用pandas API進行繪圖。

(4)seaborn:是一個更加高級的包土辩,是matplotlib的一個抽象支救,就像numpy和pandas的關系,利用該包我們可以畫出更多高級的圖像拷淘。

可視化繪圖工具包總結各墨,提取碼l7m1。

2启涯、數(shù)據(jù)整理

數(shù)據(jù)整理是進行數(shù)據(jù)分析之前的關鍵步驟贬堵。數(shù)據(jù)清洗的主要任務是將臟數(shù)據(jù)清洗成可以直接處理的數(shù)據(jù)。而數(shù)據(jù)清洗的目的有2個:一是把臟數(shù)據(jù)清洗成干凈的數(shù)據(jù)结洼,二是將干凈的數(shù)據(jù)進行處理便于后續(xù)分析工作的進行黎做。數(shù)據(jù)清洗大致包含如下四步:

(1)檢測缺失值:查看導入的數(shù)據(jù)是否有缺失

(2)缺失值處理:對缺失值處理主要有三種方式:直接丟掉某個變量、填充缺失值松忍、刪除缺失值所在的行蒸殿。

(3)異常值處理:對某些格式、類型等異常值進行處理鸣峭。

(4)數(shù)據(jù)處理:將干凈的數(shù)據(jù)進行處理便于后續(xù)分析工作的進行宏所。

3、按消費時間(月)進行分析

可以從如下幾個方面進行分析:

(1)每個月的消費總金額

(2)每個月的消費次數(shù)

(3)每個月的產(chǎn)品購買數(shù)量

(4)每個月購買CD的人數(shù)

4摊溶、每個用戶消費情況分析

可以從如下幾個方面進行分析:

(1)用戶消費金額爬骤、消費次數(shù)的描述統(tǒng)計

(2)用戶消費金額和消費產(chǎn)品數(shù)的散點圖

(3)用戶累計消費金額占比(二八法則)

5、用戶行為分析

(1)用戶第一次消費(首購)

(2)用戶最后一次消費

(3)新老客戶消費比:有多少用戶僅消費了一次更扁;每月新客戶占比

(4)用戶分層:1)RFM盖腕,2)新客戶、活躍浓镜、回流溃列、流失

(5)用戶購買周期(按訂單):用戶消費周期描述、用戶消費周期分布

(6)用戶生命周期:用戶生命周期描述膛薛、用戶生命周期分布

(7)用戶復購率和回購率分析

接下來的章節(jié)我們將進行詳細的數(shù)據(jù)分析過程听隐。

三徐绑、導入數(shù)據(jù)分析包

image

在第二部分概述我們已經(jīng)簡要介紹過這幾個包的用途沪曙。在此我們不再贅述韭邓。

四薯鼠、數(shù)據(jù)整理

1盲泛、數(shù)據(jù)來源

數(shù)據(jù)源是文本格式考廉,主要有4列——用戶id(id)捅位,消費時間(order_date)怒见,購買CD數(shù)量(num_products)锌半,消費金額(amount_spend)禽车。并且每列之間由空格分隔。

注意:每一列并沒有名稱標識、每列的空格間隔不確定殉摔。

image

(1)使用pandas方法pd.read_csv()方法將源數(shù)據(jù)導入州胳,并給每列加上表頭。

(2)通常情況下.csv文件以逗號或者制表符分隔逸月,最初我使用的sep='\t'報錯了栓撞。觀察源數(shù)據(jù)發(fā)現(xiàn),我們并不能確定每列間隔的空格數(shù)碗硬。因此使用正則表達式sep='\s+'瓤湘。

image

2、數(shù)據(jù)清洗

(1)檢測缺失值

可以考慮使用df.isnull()或者pd.isnull(), pd.notnull()這兩個方法來檢測缺失值肛响,該方法返回的是DataFrame岭粤。由于方法count()計算的是非NA的值的個數(shù)。而根據(jù)之前導入的數(shù)據(jù)情況特笋,我們發(fā)現(xiàn)總共導入了69659行數(shù)據(jù)剃浇。因此導入的數(shù)據(jù)不存在缺失值。

image

(2)缺失值處理

對缺失值的處理猎物,我們通常的處理過程是先檢測缺失值虎囚,然后采用刪除缺失值所在的行,或者對缺失值進行填充的方式蔫磨。

刪除:df.dropna()

填充:df.fillna()

由于該項目不存在缺失值淘讥,因此不做任何處理。

(3)異常值處理

首先使用df.info(), df.describe()簡要的觀察一下數(shù)據(jù)的各項字段堤如。注意到數(shù)據(jù)的order_date列類型有問題蒲列。因此我們對該列進行類型轉化。

image
image

order_date的類型是int64搀罢,我們可以使用pd.to_datetime()方法將order_date的類型進行轉化蝗岖。

image

轉化方式有兩種:(1)使用pd.to_datetime()方法,(2)在讀入文件是設置parse_dates字段榔至。代碼如下:

image
image

(4)數(shù)據(jù)處理

為了便于后續(xù)第五章節(jié)“按月進行數(shù)據(jù)分析”抵赢,我們需要對為原始數(shù)據(jù)增加一列“month”

image

五、按消費時間(月)分析

該部分我們主要從月消費總金額唧取、月消費次數(shù)铅鲤、月產(chǎn)品購買量、月購買CD的人數(shù)等方面做簡要分析枫弟。

1邢享、每個月的消費總金額

(1)數(shù)據(jù)處理與可視化

將數(shù)據(jù)按照month進行分組,然后對分組的消費金額amount_spend進行求和即可淡诗。

image

(2)分析

從可視化圖形中可以得出:1997年1月到3月驼仪,這3個月消費總金額出現(xiàn)峰值掸犬,均值在35萬左右袜漩。而后面的幾個月每個月的消費總金額相對較平穩(wěn)绪爸,維持在10萬左右。

2宙攻、每個月的消費次數(shù)

(1)數(shù)據(jù)處理與可視化

每個月的消費次數(shù)體現(xiàn)在用戶id出現(xiàn)的次數(shù)奠货。因此將數(shù)據(jù)按照month進行分組,然后對分組的id進行計數(shù)座掘。注意這里的重復的id是要進行重復計數(shù)的递惋。重復id表示的是用戶進行了多次消費。

image

(2)分析

1997年1月到3月消費總次數(shù)達到峰值溢陪,訂單數(shù)為10000左右萍虽,而在后面的幾個月中,每個月消費總次數(shù)比較平穩(wěn)形真,訂單數(shù)為2500左右杉编。

3、每個月的產(chǎn)品購買數(shù)量

(1)數(shù)據(jù)處理與可視化

每個月產(chǎn)品購買數(shù)量主要體現(xiàn)在num_products列咆霜。因此將數(shù)據(jù)按照month進行分組邓馒,然后對分組的num_products進行求和即可。

image

(2)分析

1997年1月到3月購買產(chǎn)品數(shù)達到峰值蛾坯,數(shù)量為22500左右光酣,而在后面的幾個月,每個月購買產(chǎn)品數(shù)比較平穩(wěn)脉课,數(shù)量為7500左右救军。

4、每個月購買CD的人數(shù)

(1)數(shù)據(jù)處理與可視化

每個月購買CD的人數(shù)主要體現(xiàn)在id這列倘零。需要注意的是id存在重復值唱遭。由于將數(shù)據(jù)按照month進行分組后,取出id這列時返回的是series视事。

方法一:考慮使用drop_duplicates()方法

image

方法二:使用nunique()方法

image

上述兩種方法的出來的結果是一樣的胆萧。

image

(2)分析

1997年1月到3月購買CD的人數(shù)達到9000左右,而在后面的幾個月中俐东,每個月購買CD的人數(shù)比較平穩(wěn)跌穗,人數(shù)大概為2000左右。

5虏辫、總結學習

在按時間(月)進行消費數(shù)據(jù)分析時蚌吸,主要使用的DataFrame的分組方法和apply函數(shù)的靈活運用。

遺留問題:apply函數(shù)的詳細總結

六砌庄、每個用戶消費情況分析

這部分我們主要從用戶消費金額羹唠,消費次數(shù)的描述統(tǒng)計奕枢、用戶消費金額和消費產(chǎn)品數(shù)散點圖、以及用戶累計消費金額占比(二八法則)來進行分析佩微。

1缝彬、用戶消費金額、消費次數(shù)的描述統(tǒng)計

(1)描述性統(tǒng)計

image

(2)分析

1)用戶平均購買了7張CD哺眯,標準差是17谷浅,說明用戶購買產(chǎn)品數(shù)波動挺大。此外中位數(shù)為3奶卓,說明有一小部分用戶購買了大量的CD一疯,從而拉高了平均值。

2)用戶消費的總金額最小值為0夺姑,這有可能是促銷活動等造成的墩邀。用戶平均消費金額是106,中位數(shù)是43盏浙,說明有一小部分用戶購買了大量的CD眉睹,消費金額也比較大,從而拉高了平均消費金額只盹±蓖可知有極值干擾。

2殖卑、用戶消費金額和消費產(chǎn)品數(shù)的散點圖

(1)數(shù)據(jù)處理與可視化

方法一:使用散點圖

image

從可視化圖形中我們發(fā)現(xiàn)存在極值站削,從右下角聚集的點可知,用戶消費金額與用戶購買產(chǎn)品數(shù)存在一定的正比關系孵稽。因此我們可以考慮對極值進行處理:

image

方法二:使用直方圖

直方圖體現(xiàn)的單變量的數(shù)值變化许起。如下圖展示的是每個月客戶購買CD總數(shù)

image

從直方圖可知,用戶購買CD數(shù)量菩鲜,絕大部分呈現(xiàn)集中趨勢园细,小部分異常值干擾了判斷,可以使用過濾操作排除異常值接校。對于直方圖而言猛频,異常值沒有散點圖那么明顯。但是我們可以使用切比雪夫定理過濾異常值蛛勉。計算95%的數(shù)據(jù)分布情況鹿寻。我們知道在離平均值5個標準差的范圍內(nèi)會包含95%的數(shù)據(jù)。具因此7+5*17=92诽凌。也就是說我們可以通過query篩選num_porducts<92的數(shù)據(jù)毡熏。

切比雪夫定理

image

同理對于用戶每個月消費總金額的直方圖以及分析與上述類似,不再贅述侣诵。

3痢法、用戶累計消費金額占比(二八法則)

秦璐-數(shù)據(jù)分析思維技巧:二八法狱窘,提取碼2lbw。

帕累托法則(英語:Pareto principle财搁,也被稱為 80/20 法則蘸炸、關鍵少數(shù)法則、八二法則)指出妇拯,約僅有20%的變因操縱著80%的局面幻馁。也就是說:所有變量中,最重要的僅有20%越锈,雖然剩余的80%占了多數(shù),控制的范圍卻遠低于“關鍵的少數(shù)”膘滨。

舉個例子:社會財富80%的財富掌握在20%的人手中甘凭,80%的人手卻只掌握20%的財富。

從數(shù)據(jù)分析角度上理解火邓,80%的數(shù)據(jù)是無用的丹弱,即數(shù)據(jù)中80%的內(nèi)容是產(chǎn)生不了太大的價值,而只有那20%的指標才能產(chǎn)生最大的價值铲咨。

(1)數(shù)據(jù)處理與可視化

用戶累計消費體現(xiàn)在amount_spend列躲胳。

image

(2)分析

用戶消費總金額進行升序排列,由圖可知纤勒,50%的用戶僅貢獻了15%的消費額度坯苹,而排名前5000的用戶貢獻了60%的消費額。

七摇天、用戶消費行為分析

在該部分我們主要從用戶第一次消費(首購)粹湃、用戶最后一次消費、新老客戶消費占比泉坐、用戶分層为鳄、用戶購買周期(按訂單、用戶生命周期等方面進行數(shù)據(jù)分析腕让。

1孤钦、用戶第一次消費(首購)

(1)可視化

將數(shù)據(jù)根據(jù)用戶id進行分組,獲取每組中用戶第一次訂單日期纯丸。此時獲得了所有用戶的首購時間偏形,然后對首購時間進行計數(shù)∫耗希可以得到在不同的時間有多少用戶進行第一次消費壳猜。具體代碼如下:

image
image

(2)分析

用戶第一次購買,集中在前3個月(1991年1月-1997年3月)滑凉,其中2月11日-2月25日有一次劇烈的波動统扳。

2喘帚、用戶最后一次消費

(1)可視化

分析思路與首購分析思路類似。

image

(2)分析

用戶最后一次購買的分布比第一次分布廣(時間跨度從1997年1月到1998年7月)咒钟,大部分最后一次購買集中在前3個月吹由,說明很多用戶購買一次后就不再進行購買,隨著時間的遞增朱嘴,最后一次購買數(shù)也在遞增倾鲫,消費呈現(xiàn)流失上升的狀況。

3萍嬉、新老客戶消費比

(1)僅消費一次的客戶

根據(jù)用戶id對數(shù)據(jù)進行分組乌昔,然后獲取用戶第一次消費時間和最后一次消費時間。如果這兩次的時間一樣壤追,說明該客戶僅僅只消費了一次磕道。

image

根據(jù)上述分析:說明大概有50%的客戶僅消費了一次。

4行冰、用戶分層

用戶分層我們主要從兩個維度來進行分析:RFM溺蕉;新客戶、活躍悼做、回流疯特、流失。

4.1肛走、RFM

(1)RFM商業(yè)模型

根據(jù)美國數(shù)據(jù)庫營銷研究所Arthur Hughes的研究漓雅,客戶數(shù)據(jù)庫中有三個神奇的要素,這三個要素構成了數(shù)據(jù)分析最好的指標:最近一次消費(Recency)羹与、消費頻率(Frequency)故硅、消費金額(Monetary)。

根據(jù)RFM商業(yè)模型纵搁,我們需要最近一次消費吃衅、產(chǎn)品消費頻數(shù)、消費的金額這三個指標腾誉。首先我們使用透視表來創(chuàng)建RFM表的雛形徘层。即獲得用戶消費總金額、購買產(chǎn)品的總數(shù)利职、以及最近一次消費的時間趣效。

image

我們發(fā)現(xiàn)order_date是時間類型。我們將用戶最近一次消費與所有用戶中最后一次消費的時間做個處理猪贪,得到用戶最后一次消費時間距離現(xiàn)在最新時間的差值跷敬。

image

為了將order_date這種datetime64類型的數(shù)據(jù)轉換成可以量化的數(shù)值型數(shù)據(jù),我們可以使用np.timedelta64(1,'D')將其單元days去掉热押,變成可以處理的浮點數(shù)西傀。此外為了與RFM模型統(tǒng)一斤寇,我們將amount_spend與num_products的名字做一個替換。使用rfm.rename()方法拥褂。

image

(2)RFM-象限法

時間“四象限”法是美國的管理學家科維提出的一個時間管理的理論娘锁,把工作按照重要和緊急兩個不同的程度進行了劃分,基本上可以分為四個“象限”:既緊急又重要(如客戶投訴饺鹃、即將到期的任務莫秆、財務危機等)、重要但不緊急(如建立人際關系悔详、人員培訓镊屎、制訂防范措施等)、緊急但不重要(如電話鈴聲伟端、不速之客杯道、部門會議等)、既不緊急也不重要(如上網(wǎng)责蝠、閑談、郵件萎庭、寫博客等)霜医。按處理順序劃分:先是既緊急又重要的,接著是重要但不緊急的驳规,再到緊急但不重要的肴敛,最后才是既不緊急也不重要的÷鸸海“四象限”法的關鍵在于第二和第三類的順序問題医男,必須非常小心區(qū)分。另外捻勉,也要注意劃分好第一和第三類事镀梭,都是緊急的,分別就在于前者能帶來價值踱启,實現(xiàn)某種重要目標报账,而后者不能。

秦璐-象限法埠偿,提取碼hrfp透罢。

rfm最經(jīng)典的一個應用就是象限法。不同點在于RFM中劃分出的是8個象限冠蒋。在數(shù)學上就是將空間進行3維劃分羽圃,得到8個象限。即如下圖所示:需要注意的是正負半軸的定性抖剿、標簽的處理朽寞。這對于我們進行下一步的分析非常重要识窿。

image

1)為了做到上述的效果。首先我們需要將RFM這三列的數(shù)據(jù)劃分成高于平均維度和低于平均維度的愁憔。(正半軸還是負半軸)使用如下代碼可得到RFM三列的值腕扶,如果是正值則說明是在正半軸,如果是負值則表示在負半軸吨掌。

image

2)接下來我們需要為每個象限設置標簽:如下代碼利用了DataFrame的apply函數(shù)和自定義函數(shù)的靈活運用半抱。從而得到一個含有“l(fā)abel”列的DataFrame。

image

3)根據(jù)標簽將數(shù)據(jù)分配到對應的象限中膜宋。即利用label進行分組

image
image

分析:從RFM分層可知窿侈,大部分用戶為重要保持客戶,但是由于受到極值的影響秋茫,所以RFM的劃分標準應該以業(yè)務為準:盡量用小部分的用戶覆蓋大部分的額度史简;不要為了數(shù)據(jù)好看劃分等級。

4.2肛著、新客戶圆兵、活躍、回流枢贿、流失

(1)概念介紹

新用戶:首購用戶

活躍用戶:一直在消費的用戶

回流:之前沒有消費或者之前有段時間沒有消費了殉农,他再次消費

流失:也稱不活躍,有段時間沒有消費

為了簡便這里按照每個月有沒有消費作為分析指標局荚。

(2)分析過程

首先使用數(shù)據(jù)透視獲得每個用戶在每個月消費的次數(shù)超凳。因為每個客戶不是在18個月(1997-01到1998-06)都進行了消費。因此數(shù)據(jù)透視肯定會存在控制NaN耀态,所以對空值用0進行填充轮傍。得到如下表:pivoted_counts

image

為了區(qū)分消費的用戶的狀態(tài):未注冊、新用戶首装、流失(不活躍)创夜、回流、活躍簿盅。我們先將每個月進行消費了的用戶對應消費的頻數(shù)進行一個狀態(tài)轉移挥下,即使用0,1這兩個數(shù)來表示其消費與否的狀態(tài)。df_purchase

image
image

接下來為每個用戶對應的這18月中的消費狀態(tài)值(0或者1)進行處理桨醋,將其轉變成(未注冊棚瘟、不活躍、新用戶喜最、回流偎蘸、活躍)即(unreg, unactive, new, return, active),并用status對其狀態(tài)值進行存儲。轉變過程邏輯為:

a)若本月沒有消費0:1)若之前未注冊迷雪,則依舊為未注冊 限书,2)若之前有消費,則為流失/不活躍章咧,3)其他情況倦西,為未注冊

b)若本月有消費1:1)若是第一次消費,則為新用戶赁严,2)如果之前有過消費扰柠,上個月為不活躍,則為回流疼约,3)如果上個月為未注冊卤档,則為新用戶,4)除此之外程剥,為活躍

注意:秦璐老師給的答案并不能達到預期的效果劝枣。

image

對每個用戶每個月消費與否狀態(tài)表的每行應用active_status函數(shù)即可得到我們想要的狀態(tài)表purchase_status

image

為了計算每個月(未注冊织鲸、不活躍舔腾、新用戶、回流搂擦、活躍)即(unreg, unactive, new, return, active)的用戶數(shù)量琢唾,但是對于未注冊的用戶unreg我們不想統(tǒng)計,因此先將unreg未注冊的用戶全部用np.NaN來替代盾饮,這樣使用value_counts()方法時會被自動忽略。得到如下表purchase_status_ct

image

(3)可視化

最終的每月分層用戶數(shù)統(tǒng)計表purchase_status_ct的可視化

image
image

(4)每個月不同分層用戶占比

如下表反應的是每個月active懒熙、new丘损、return、unactive用戶的占比

image

(5)分析

由上表可知工扎,每月的用戶消費狀態(tài)變化:1)活躍用戶徘钥,持續(xù)消費的用戶,對應的消費運營的質(zhì)量2)回流用戶肢娘,之前不消費呈础,本月才消費,對應的使喚回運營3)不活躍用戶橱健,對應的是流失而钞。

遺留問題:使用SQL做用戶分層分析

5、用戶購買周期(按訂單)

(1)用戶消費周期描述拘荡、用戶消費周期分布

對于用戶購買周期臼节,我們依然需要對用戶進行分組。分組后用戶可能會有多個訂單。在Excel中可以簡單的使用函數(shù)下一個單元格減去上一個單元格即可得到每個用戶消費的周期网缝。在pandas中可以使用shift()方法巨税,即將某列數(shù)據(jù)向下平移一位。最終得到用戶每個訂單的時間間隔表order_diff粉臊。

image
image

order_diff是series草添,我們需要對其進行清洗——將單元days去掉。并匯出分布圖扼仲。

image

訂單周期呈指數(shù)分布远寸。用戶平均購買周期為68天,最大周期為533天犀盟。絕大部分用戶的購買周期低于100天

6社搅、用戶生命周期

(1)用戶生命周期描述

用戶的生命周期在前面的分析中有涉及到:用戶order_date的最小值與最大值差值。

image

分析:超過50%的用戶聲明周期都是0天描扯,也就是說超過50%的用戶僅購買了一次筋帖。

(2)用戶生命周期分布

用戶的生命周期在前面的分析中有涉及到:用戶order_date的最小值與最大值差值。但是的出來的數(shù)據(jù)是帶單位“days”贱枣。因此用之前使用過的方法np.timedelta64(1,'D')將單位去掉监署。得到如下分布圖

image

分析:用戶均消費134天,中位數(shù)僅為0天纽哥。并且超過50%的用戶聲明周期都是0天钠乏,也就是說超過50%的用戶僅購買了一次。這說明用戶的生命周期受到只購買一次的用戶影響比較厲害(可以排除)春塌。

因此我們提取出生命周期>0晓避,也就是購買1次以上的用戶的數(shù)據(jù),得到如下分布圖:

image

7只壳、復購率和回購率分析

(1)定義

重復購買率:指消費者對該品牌產(chǎn)品或者服務的重復購買次數(shù)俏拱,重復購買率越多,則反應出消費者對品牌的忠誠度就越高吼句,反之則越低锅必。

回購率:曾經(jīng)購買過的用戶在某一個時期內(nèi)再次購買的占比。如本月100個用戶消費惕艳,下個月有30個用戶再次消費搞隐,那么回購率就是30%

(2)回購率

使用之前已有的privoted_counts表。該表展示的是每個用戶每個月消費的頻數(shù)远搪。

image

由于我們只需要每個用戶每個月消費頻數(shù)大于1的數(shù)據(jù)劣纲,可以采用如下處理方式:將頻數(shù)大于1的設置為狀態(tài)1即復購,0的設置為np.NaN即沒有消費,消費1次的設置為0终娃。如下代碼使用了if的嵌套lambda x : 1 if x > 1 else (np.NaN if x == 0 else 0)

image

分析:復購率穩(wěn)定在20%左右味廊,因為前3個月因為有大量新用戶涌入蒸甜,這批用戶只購買了一次,所以導致復購率降低余佛。

(3)復購率

復購率的計算與之前的用戶分層有著緊密聯(lián)系柠新。對于復購率我們只需要用戶每月是否消費的狀態(tài)表df_purchase,0表示該月沒有消費辉巡,1表示該月有消費恨憎。

image

當月消費,下月再消費才算復購郊楣。如下表中0表示當月消費過憔恳,但是次月未消費,1表示當月消費了净蚤,次月也消費了钥组,NaN表示當月沒有消費。

image

復購率計算:

image

遺留問題:使用SQL做復購率和回購率分析

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末今瀑,一起剝皮案震驚了整個濱河市程梦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌橘荠,老刑警劉巖屿附,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異哥童,居然都是意外死亡挺份,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門贮懈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匀泊,“玉大人,你說我怎么就攤上這事朵你√胶眨” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵撬呢,是天一觀的道長。 經(jīng)常有香客問我妆兑,道長魂拦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任搁嗓,我火速辦了婚禮芯勘,結果婚禮上,老公的妹妹穿的比我還像新娘腺逛。我一直安慰自己荷愕,他們只是感情好,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著安疗,像睡著了一般抛杨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上荐类,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天怖现,我揣著相機與錄音,去河邊找鬼玉罐。 笑死屈嗤,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的吊输。 我是一名探鬼主播饶号,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼季蚂!你這毒婦竟也來了茫船?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤癣蟋,失蹤者是張志新(化名)和其女友劉穎透硝,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疯搅,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡濒生,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了幔欧。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罪治。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖礁蔗,靈堂內(nèi)的尸體忽然破棺而出觉义,到底是詐尸還是另有隱情,我是刑警寧澤浴井,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布晒骇,位于F島的核電站,受9級特大地震影響磺浙,放射性物質(zhì)發(fā)生泄漏洪囤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一撕氧、第九天 我趴在偏房一處隱蔽的房頂上張望瘤缩。 院中可真熱鬧,春花似錦伦泥、人聲如沸剥啤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽府怯。三九已至刻诊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間富腊,已是汗流浹背坏逢。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赘被,地道東北人是整。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像民假,于是被迫代替她去往敵國和親浮入。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容