项目:CDNow网站的用户消费行为分析

使用工具和数据:jupyter notebook, CDNOW_master

导入pandas和numpy

可视化需要matplotlib 软件包的 pyplot 子模块的 plot() 函数绘图,所以还要导入Matplotlib绘图库,具体详见https://www.runoob.com/numpy/numpy-matplotlib.html

观察数据,共有4列:用户ID、购买日期、购买产品数、购买金额

更改后的df数据如下:因为后续会按月进行分析,所以新增个month列,当列名是全新的则在最右变自动加上新的一列

一、通过month分组数据,按月分析用户行为

1.每月的订单总金额

做出折线图如下,发现1~3月份订单金额增长较快3月达到最大值,随后急速下降,可能是前3个月有某些活动吸引了用户下单。

2.每月用户消费的总产品数

3.每月用户消费的订单数

4.每月的用户数:

一个用户ID在当月可能消费不止一个订单,也就是说用户ID会有重复,去掉重复的用户ID就得到每月的用户总数。去重用drop_duplicates()

更简单的方法可以使用数据透视表pivot_table,按月计算以月为索引,要计算的值是总金额,产品数和订单数,对这三列分别指定函数,注意 'user_id':'count' 是对用户ID计数

5.每月用户平均消费金额:

每月用户消费的总金额 / 该月的用户数

6.每月用户平均消费次数

每月的订单数 / 该月的用户数

二、用户个体消费数据分析,通过用户ID分组数据

1.消费金额、消费产品数的描述统计:

可知:用户平均消费了7张CD,中位数却是3,同理订单金额平均是106,中位数是43,说明少量的用户消费了大量的产品,这也遵循二八法则。

2.消费金额、产品数的散点图:

观察散点图,右上角极个别的点拉大了图表,其实就是极值的影响,我们可以加个过滤条件,减少极值的影响。query()过滤出订单金额在4000以内的:

3.消费金额、消费产品数做直方图:

bins=20等距划分成20份

数据较集中,可以使用切比雪夫定理过滤掉异常值,即95%的数据集中在’平均值加5个标准差‘。根据上面的描述统计,产品数的mean+5*std在100附近,所以我们选择产品数在100以内的数据:

4.用户累计消费金额占比:百分之多少的用户占了百分之多少的销售额

按用户消费金额进行升序排列,cumsum累计相加,除以消费总额即得到累计消费金额占比

重置索引,对order_mount切片选取这一列作图:

由图可知:20000个用户消费占比是40%,而剩下的3570个用户即贡献60%的销售额。

三、用户消费行为

1.第一次购买的用户分布(新用户):

我们对用户分组的数据求最小值,选取order_dt这一列,最小的日期就是距离现在最远,即第一次购买的日期。对首购的用户进行计数,绘出折线图显示97年2月初新客最多。

2.最后一次购买的用户分布:

再对用户分组的数据求最大值,选取order_dt这一列,最大的日期就是距离现在最近,即最后一次购买的日期。发现最后一次购买的用户在97年2月份出现的次数最多,结合首购用户也是在2月份最多,我们推测可能是2月份有某些优惠活动,吸引了一部分用户消费。

3.新老用户分布

使用一个聚合函数算出每个用户首购和最后一次购买的时间,判断这两个时间是否相等,相等则返回Ture说明该用户仅消费了一次,不相等返回False。

一半用户只消费了一次

4.用户分层

4.1 RFM用户分层:

Recently最后一次消费距今的时间,Frequently消费次数,消费金额。

以用户ID为索引,计算消费总金额、消费次数和最后一次消费时间,生成数据透视表:

消费总金额就是M,消费次数是F(频率),下面将最后一次消费时间转化成R:

数据表中的最后时间大约在1998年7月也就是order_dt.max()  和用户最后一次购买时间相减就知道购买了多少天(R),最后再把order_dt更改数据类型为日期格式。

和平均消费相比,比如用户1的R>0说明最后一次购买距今的天数超过平均值,F<0说明购买次数低于平均值,M<0说明购买金额也低于平均值,这类用户就是最不活跃的,可划分为一般挽留用户。类似的,我们可以将RFM与0比较对用户进行分层。

我们按照用户类型分组,对每种类型的客户进行求和统计

可视化:

4.2 新客,活跃,回流,流失用户分层

以user_id为索引,月为列创建数据透视,对每个用户在每月的购买日期计数,空值用0填充,就可以知道每个用户在每个月消费了几次。

简化一下表格,买了记为1,没买记为0:

函数返回以每月为索引的状态,创建函数前先定义好columns_month,他是数据按月分组求和后,重置一下索引,再切取month列:

将创建好的函数应用到df_purchase的每一行,可以看出每个用户在每个月的活跃状态

将其中未注册(unreg)的用户填充空值,计算每种类型的用户在每月的个数如下:

转置一下:

5、用户购买周期:用户的订单之间间隔时间是多少天

用户购买周期分析,按订单算用户购买平均的时间间隔是多少,也就是用户隔多少天下一次单

shift是下移一个位,错位相减得到不同用户自己内部的订单间隔时间。比如用户1 只有一个订单,下移之后该订单日期无法相减所以是空。用户2有两个订单,第二个订单减第一个订单日期为0天说明这两个是同一天下单。

把日期的单位去掉,绘制直方图:

6、用户生命周期分析,最后一次下单和第一次下单

最后一次下单就是最大的日期,第一次下单就是最小的日期,这里用之前新老用户分布的得到的user_life

我们想把购买过1次及以上的用户提取出来

复购率:自然月内,购买多次的用户占比

回购率:当月消费过的在次月仍旧消费

0:当月消费,次月没消费(没回购)

1:当月消费,次月也消费(回购)

NaN:当月都没消费

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,125评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,293评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,054评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,077评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,096评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,062评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,988评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,817评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,266评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,486评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,646评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,375评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,974评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,621评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,642评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,538评论 2 352