【电商API接口项目实战分享】项目实战案例一:电商平台零售数据分析

本文以真实案例,带领大家一起学习如何搭建电商零售的用户画像。

"项目介绍"


此次项目数据来自Kaggle,包含了2010年12月1日至2011年12月9日在英国注册的非实体网上零售发生的所有交易。

字段如下:

  • Invoice: 订单编号,每笔交易有6个整数。

  • StockCode: 产品编号,由5个整数组成。

  • Description: 产品描述。

  • Quantity: 产品数量,有负号的表示退货。

  • InvoiceDate: 订单日期和时间。

  • Price: 单价(英镑),单位产品的价格

  • Customer ID:客户编号,每个客户编号由5位数字组成。

  • Country:国家的名称,每个客户所在国家/地区的名称。

"RFM模型介绍"


RFM模型是一种用户分类模型,通过对比分析不同用户群体在时间、地区等维度下的交易量、交易金额指标,并根据分析结果提出优化建议。

  • R(Recency):最近一次消费时间(最近一次消费到参考时间的长度)

  • F(Frequency):消费的频次(单位时间内消费了多少次)

  • M(Money):消费的金额(单位时间内总消费金额)

下面是项目实战的代码实现过程:

01 导入库


本例所需的库包括pandas、numpy、matplotlib、seaborn、datetime、os六个模块。

  • Pandas:Pandas有两种结构,分别是Series和DataFrame。其中Series拥有Numpy的所有功能,可以认为是简单的一维数组;而DataFrame是将多个Series按列合并而成的二维数据结构,每一列单独取出来是一个Series。

  • Numpy:Numpy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

  • Matplotlib:Matplotlib用于在 Python 中创建静态、动画和互动的可视化

  • Seaborn:Seaborn是一种开源的数据可视化工具,它在Matplotlib的基础上进行了更高级的API封装,因此可以进行更复杂的图形设计和输出。Seaborn是Matplotlib的重要补充,可以自主设置在Matplotlib中被默认的各种参数,而且它能高度兼容Numpy与Pandas数据结构以及Scipy与statsmodels等统计模式。

  • Datetime:datetime是Python处理日期和时间的标准库。

  • os:os.chdir() 方法用于改变当前工作目录到指定的路径。

02 数据准备


此处使用Pandas的read_excel方法读取数据文件,并使用info函数查看数据类型。

03 数据预处理


  • (1)缺失值处理

利用lambda函数对缺失值进行统计。

结果如下图:

可以发现Description和Customer ID字段存在缺失值。Description字段对本项目分析意义不大,可以直接删除;对Customer ID字段的缺失部分进行填充,用'U'表示缺失。

  • (2)日期处理

提取日期、时间、年、月、日。

结果如下图:

  • (3)重复值处理

使用drop_duplicates函数对重复值进行删除。

  • (4)异常值处理

使用describe函数对数据进行探索性分析。

可以发现对Price(单价)列有负数,因此需要对Price列的异常值进行处理。

首先计算异常值比例:

查看具体的异常值:

共2512条异常记录,其中单价为负数有2条,单价为0有2510条,单价为0可能是促销产品,因此我们只对负数进行剔除:

为了后续分析,需要增加amount列:

结果如下图:

04 数据分析


  • (1)退货率计算

利用数据透视表计算退货金额。

结果如下图:

再利用数据透视表计算成功交易订单总金额。

结果如下图:

最后计算退货率:

绘制2011年各月份退货率折线图:

结果如下图:

  • (2)RFM模型分析

计算R、F、M三个指标的值。

对R进行探索性分析:

可以发现客户最近一次消费到参考时间的最大时间间隔为373天,平均时间间隔92天。

绘制柱状图如下:

结果如下图:

对F进行探索性分析:

绘制柱状图如下:

M指标的柱状图如下:

客户等级划分

结果如下图:

绘制柱状图:

绘制饼图:

05 结论和建议


(1)针对退货订单,2011年1月与12月退货率存在异常,我们需要了解是外部因素还是内部因素所导致的,从产品、渠道、价格、促销四个方面来分析具体的原因加以改进。

(2)根据用户分层得到八类客户,针对不同的客户需要采取不同的营销手段。根据数据可知,客户最多的类别是重要价值客户和重要发展客户,这类客户是为公司创造价值的主力军。对于重要发展客户,由于最近消费频次较少,建议公司获取相关信息来挽回客户;对于一般挽留客户和一般发展客户,获取用户的详细数据分析用户画像,了解客户的消费需求,进行精准的营销,即时推送产品信息;对于重要保持客户和重要挽留客户,以赠送优惠券或推送折扣等活动来增加客户活跃度。

相关推荐
神仙别闹几秒前
基于C#和Sql Server 2008实现的(WinForm)订单生成系统
开发语言·c#
XINGTECODE1 分钟前
海盗王集成网关和商城服务端功能golang版
开发语言·后端·golang
zwjapple18 分钟前
typescript里面正则的使用
开发语言·javascript·正则表达式
小五Five19 分钟前
TypeScript项目中Axios的封装
开发语言·前端·javascript
前端每日三省21 分钟前
面试题-TS(八):什么是装饰器(decorators)?如何在 TypeScript 中使用它们?
开发语言·前端·javascript
好看资源平台30 分钟前
网络爬虫——综合实战项目:多平台房源信息采集与分析系统
爬虫·python
凡人的AI工具箱34 分钟前
15分钟学 Go 第 60 天 :综合项目展示 - 构建微服务电商平台(完整示例25000字)
开发语言·后端·微服务·架构·golang
PersistJiao1 小时前
在 Spark RDD 中,sortBy 和 top 算子的各自适用场景
大数据·spark·top·sortby
chnming19871 小时前
STL关联式容器之map
开发语言·c++
果冻人工智能1 小时前
2025 年将颠覆商业的 8 大 AI 应用场景
人工智能·ai员工