项目实战:用户消费行为分析

Python爬虫与数据挖掘

共 3246字,需浏览 7分钟

 ·

2023-10-16 02:26

《分析步骤》

第一部分:数据类型的处理—字段的清洗
缺失值的处理、数据类型的转化


第二部分:按月数据分析
每月的消费总金额、每月的消费次数、每月的产品购买量、每月的消费人数


第三部分:用户个体消费数据分析
用户消费金额和消费次数的描述统计、用户消费金额和消费次数的散点图、用户消费金额的分布图(二八法则)、用户消费次数的分布图
、用户累计消费金额的占比


第四部分:用户消费行为分析
用户第一次消费时间、用户最后一次消费时间、新老客消费比、用户分层、用户购买周期、用户生命周期。

第一部分:数据类型的处理—字段的清洗


导入常用的库


76fd60bc6edf86df69717a4c2b11ca57.webp

加载包和数据,文件是txt,用read_table方法打开,因为原始数据不包含表头,所以需要赋予。字符串是空格分割,用\s+表示匹配任意空白符。

4bc838f7d2cd9cb85e80bad1cd124fe8.webp

列字段的含义:

user_id:用户ID

order_dt:购买日期

order_products:购买产品数

order_amount:购买金额


消费行业或者是电商行业一般是通过订单数,订单额,购买日期,用户ID这四个字段来分析的。基本上这四个字段就可以进行很丰富的分析。


观察数据,判断数据是否正常识别。值得注意的是一个用户可能在一天内购买多次,用户ID为2的用户在1月12日买了两次,这个细节不要遗漏。


0ee6810fecc6f85185317992fe2b3160.webp

查看数据类型、数据是否存在空值;原数据没有空值,很干净的数据。接下来我们要将时间的数据类型转化。

8d05329383e662ca1da3e5313d9b4819.webp

用户平均每笔订单购买2.4个商品,标准差在2.3,稍稍具有波动性。中位数在2个商品,75分位数在3个商品,说明绝大部分订单的购买量都不多。最大值在99个,数字比较高。购买金额的情况差不多,大部分订单都集中在小额。


一般而言,消费类的数据分布,都是长尾形态。大部分用户都是小额,然而小部分用户贡献了收入的大头,俗称二八。


数据类型的转化

6895303e10cfd8fd4a66b21a35c48e77.webp

到目前为止,我们已经把数据类型处理成我们想要的类型了。我们通过四个字段及衍生字段就可以进行后续的分析了。


第二部分:按月数据分析


接下来我们用之前清洗好的字段进行数据分析。从用户方向、订单方向、消费趋势等进行分析。
1、消费趋势的分析

  • 每月的消费总金额

  • 每月的消费次数

  • 每月的产品购买量

  • 每月的消费人数
    目的:了解这批数据的波动形式。


用groupby创建一个新的对象。这里要观察消费总金额,需要将order_amount求和

360c80a539d6f8d204766f47b418b475.webp

按月统计每个月的CD消费总金额

beff5b7e56b9c0edae6fda5b397bbe3e.webp

从图中可以看到,前几个月的销量非常高涨。数据比较异常。而后期的销量则很平稳。


每月的消费次数(订单数)

e7109a72e6e7dffbc39c3c1a97db94fc.webp

前三个月的消费订单数在10000笔左右,后续月份的消费人数则在2500人左右。



每月的产品购买量

13862b707f6469b2b26125d1dcbb1fd6.webp

每月的产品购买量一样呈现早期购买量多,后期平稳下降的趋势。


为什么会呈现这个原因呢?

我们假设是用户身上出了问题,早期时间段的用户中有异常值,第二假设是各类促销营销,但这里只有消费数据,所以无法判断。


每月的消费人数(去重)

2e4e4ac052aefde29fd63810e402e680.webp


每月的消费人数小于每月的消费次数,但是区别不大。前三个月每月的消费人数在8000—10000之间,后续月份,平均消费人数在2000不到。一样是前期消费人数多,后期平稳下降的趋势。


第三部分:用户个体消费数据分析

之前我们维度都是月,来看的是趋势。有时候我们也需要看个体来看这个人的消费能力如何,这里划分了五个方向如下:

  • 用户消费金额和消费次数的描述统计

  • 用户消费金额和消费次数的散点图

  • 用户消费金额的分布图(二八法则)


用户消费金额和消费次数的描述统计

0fefd7835097a582bf96370e82d6b15a.webp

从用户角度看,每位用户平均购买7张CD,最多的用户购买了1033张。用户的平均消费金额(客单价)100元,标准差是240,结合分位数和最大值看,平均值才和75分位接近,肯定存在小部分的高额消费用户。


用户消费金额和消费次数的散点图

6bc298b0f862f0545096e969fd0de715.webp

绘制用户的散点图,用户比较健康而且规律性很强。因为这是CD网站的销售数据,商品比较单一,金额和商品量的关系也因此呈线性,没几个离群点。


用户消费金额的分布图(二八法则)

f4461a1cd2c9b35a83d9d056ac6885a4.webp

从上图直方图可知,大部分用户的消费能力确实不高,绝大部分呈现集中在很低的消费档次。高消费用户在图上几乎看不到,这也确实符合消费行为的行业规律。


到目前为止关于用户的消费行为有一个大概的了解


第四部分:用户消费行为分析


- 用户第一次消费(首购)。

- 用户最后一次消费

- 新老客消费比

    - 多少用户仅消费了一次

    - 每月新客占比

- 用户分层

    - RFM

    - 新、老、活跃、流失

- 用户购买周期(按订单)

    - 用户消费周期描述

    - 用户消费周期分布




用户第一次消费(首购)

b0b9f909adcf559a7e972afd4080346a.webp

求月份的最小值,即用户消费行为中的第一次消费时间。所有用户的第一次消费都集中在前三个月.


用户最后一次消费

18b331152dcca6aa5e8f0ea34d5732e8.webp

da87b67babcd952141423c0e25c7a3e5.webp


观察用户的最后一次消费时间。用户最后一次消费比第一次消费分布广,大部分最后一次消费集中在前三个月,说明很多客户购买一次就不再进行购买。随着时间的增长,最后一次购买数也在递增,消费呈现流失上升的情况,用户忠诚度在慢慢下降。


新老客的消费比

d88af7440fdfdc6f66d3098ed9485091.webp

user_id为1的用户第一次消费时间和最后一次消费时间为19970101,说明他只消费了一次


用户购买周期

6c7ade33bfefc0b588c58a235172cd4d.webp

有一半的用户只消费了一次


用户分层

56dcb1b4e1818deb5ece68334257e062.webp

order_products求的是消费产品数,把它替换成消费次数也是可以,但是因为我们这里消费次数是比较固定的,所以使用消费产品数的维度。


RFM距今天数

76b3d3229a3b113dd2d83841495894a2.webp

R表示客户最近一次交易时间的间隔,客户在最近一段时间内交易的金额。F表示客户在最近一段时间内交易的次数,F值越大,表示客户交易越频繁,反之则表示客户交易不够活跃。M表示客户在最近一段时间内交易的金额。M值越大,表示客户价值越高,反之则表示客户价值越低。


用户分层:RFM

e2335f333e18c0340f87825eaf1dd4b2.webp

用户分层,这里使用平均数

d6bd83ba6f26a6e86d141bbd777e6ae1.webp

M不同层次客户的消费累计金额,重要保持客户的累计消费金额最高


用户分层:计数

6a71af7757912034254809e203136e06.webp

不同层次用户的消费人数,之前重要保持客户的累计消费金额最高,这里重要保持客户的消费人数排名第二,但离一般挽留用户差距比较大,一般挽留用户有14074人,重要保持客户4554人


RFM用户分层

97d6c87cf1604994264f74f194591509.webp

从RFM分层可知,大部分用户为重要保持客户,但是这是由于极致的影响,所以RFM的划分应该尽量以业务为准。尽量用小部分的用户覆盖大部分的额度,不要为了数据好看划分等级。

RFM是人工使用象限法把数据划分为几个立方体,立方体对应相应的标签,我们可以把标签运用到业务层面上。比如重要保持客户贡献金额最多159203.62,我们如何与业务方配合把数据提高或者维护;而重要发展客户和重要挽留客户他们有一段时间没有消费了,我们如何把他们拉回来.


浏览 16
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报