python数据分析案例——零售商店电子销售订单分析

news2024/11/24 14:21:23

一、项目背景

通过"扫描"零售商店电子销售点个别产品的条形码而获得的消费品销售的详细数据。

这些数据提供了有关所售商品的数量、特征和价值以及价格的详细信息。

二、数据来源

https://www.kaggle.com/marian447/retail-store-sales-transactions

三、提出问题

  • 消费情况分析及用户购买模式分析

  • RFM和CLV分析

  • 不同类别商品关联规则挖掘

四、理解数据

  • Date:购买日期

  • Customer_ID:用户ID

  • Transaction_ID:交易ID

  • SKU_Category:商品分类SKU编码

  • SKU:商品唯一SKU编码

  • Quantity:购买数量

  • Sales_Amount:购买金额


👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

素材、视频教程、完整代码、插件安装教程我都准备好了,直接在文末名片自取就可


五、数据清洗

1.导入数据

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
%matplotlib inline

更改设计风格

plt.style.use('ggplot')
plt.rcParams['font.sans-serif'] = ['SimHei']


2.选择子集

第一列为数据编号,已有索引故删除

df.drop(columns='Unnamed: 0', inplace=True)
df.info()

3.删除重复值

df.duplicated().sum()

数据无重复值

4.缺失值处理

df.isnull().sum()

数据无缺失值

5.标准化处理

df.dtypes

Date为对象类型,需要标准化为日期类型格式

df.Date = pd.to_datetime(df.Date, format='%d/%m/%Y')
df.dtypes

6.异常值处理

df[['Quantity','Sales_Amount']].describe()

购买数量存在小于1是由于称重单位不足1所致,非异常值

六、分析内容

1.消费情况按月分析

(1)每月消费总金额趋势分析

df['Month'] = df.Date.astype('datetime64[M]')
df.head()

grouped_month.Sales_Amount.sum().head(12).plot()

由上图可知:消费金额波动较大,其中第一季度保持持续上升,后续波动较大,整体呈上升趋势

(2)每月交易次数趋势分析

grouped_month.Transaction_ID.nunique().head(12).plot()

由上图可知:交易次数波动较大,前期呈上升趋势,五月之后交易次数开始下降,在八月降至最低值,后续开始波动回升,在十二月份重回峰值

(3)每月商品购买数量趋势分析

grouped_month.Quantity.sum().head(12).plot()

由上图可知:商品购买数量波动较大,整体趋势同交易次数保持一致

(4)每月消费人数趋势分析

grouped_month.Customer_ID.nunique().head(12).plot()

由上图可知:每月购买人数可分简单为三个阶段,1-5月呈持续上升趋势,6—8呈持续下降趋势,9-12月呈波动上升趋势

2.用户分布分析

(1)新用户分布

grouped_customer = df.groupby('Customer_ID')
grouped_customer.Date.min().value_counts().plot()

由上图可知:新用户获取不稳定,波动较大,整体有略微下降趋势

grouped_customer.Month.min().value_counts().plot()

由上图可知:按月统计,每月新用户用户数有明显下降趋势。

说明新用户获取呈大幅下降趋势,需要引起注意,适当增加营销活动提升新用户的获取

(2)一次消费及多次消费用户占比分析

#仅消费一次用户占比
(grouped_customer.Transaction_ID.nunique() == 1).sum()/df.Customer_ID.nunique()

由计算得:存在一半的用户只进行了一次消费

#Date_x等于Date_y则为每月新用户
((merged_date.query('Date_x == Date_y')).groupby('Month').Customer_ID.count() / merged_date.groupby('Month').Customer_ID.count()).plot()

由上图可知:每月新用户占比整体呈下降趋势,结合每月消费人数趋势可知,第四季度消费人数有上升趋势,故期间复购人数有所提升

3.用户分层分析

(1)RFM分层分析


由上表及图可知:

  • 销售额主要来源重要保持客户,人数占比最高的为一般发展客户

  • 重要保持客户:销售额的主要来源,近期有消费,且消费高,消费频率不足,可以适当举行营销活动,提升此层客户的购买频率

  • 重要价值客户:销售额的第二来源,近期有消费,消费高,频率高,尽可能使该层客户保持现状

  • 重要发展客户:消费以及消费频次高,近期没有消费,可以使用适当策略召回用户,参与消费

  • 重要挽留客户:消费高,但频次低且近期未消费,处在流失的边缘,可以通过适当活动,使其参与到消费中来,防止流失

  • 一般价值客户:消费低,消费频率高且近期有消费,可以使用优惠券等形式活动刺激该层客户的消费,提升其消费额

  • 一般发展客户:人数占比最高,近期有消费,但消费额以及消费频次不高,考虑到人数占比高,可以适当举办活动提升消费频次和消费额

  • 一般保持客户:在成本与资源控制下,酌情考虑

  • 一般挽留客户:在成本与资源控制下,酌情考虑

(2)用户状态分层分析

由上图可知:

  • 新用户:新用户占比呈明显下降趋势,说明拉新运营不足

  • 活跃用户:在二月占比达到最高,后续呈缓慢下降趋势,说明消费运营正在下滑

  • 不活跃用户:不活跃用户呈明显上升趋势,客户流失较为明显

  • 回流客户:有缓慢上升趋势,说明召回运营不错

4.用户生命周期分析

(1)用户生命周期分布

plt.scatter(x='lifetime', y='Sales_Amount', data=clv)

由上图可知:

  • 用户生命周期与其期间客户价值不存在线性关系,当生命周期在300天内,部分生命周期较长用户贡献的价值高于生命周期较短的用户;

  • 当生命周期大于300天,存在部分用户贡献价值较少,由于数据量不足等原因,结果仅供参考

5.回购率与复购率分析

(1)复购率分析

6.商品关联规则挖掘

(1)分析热销商品

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/588215.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows11@OpenWith@选择文件打开方式导致卡死@windows11任务栏显示秒

文章目录 OpenWith选择文件打开方式导致卡死解决方案 windows11任务栏显示秒显示秒的注册表设置取消显示秒: OpenWith选择文件打开方式导致卡死 关键在于一个名为openwith的进程出现问题该进程有时会卡死,并且无法关闭,这个bug存在很久了,具体参考:Windows11 - Microsoft Comm…

MySQL 多行函数

文章目录 多行函数1. 求 country 表中,所有国家人口的平均值,其 SQL 语句实现如下:2. 求 country 表中,所有国家人口的总数,其 SQL 语句实现如下:3. 求 country 表中,人口最多和最少国家的人口数…

KD7742耐压接地泄漏绝缘四合一并行测试仪

一、产品简介 KD7742耐压接地泄漏绝缘四合一并行测试仪具有交/直流耐压、绝缘电阻等项目的测试分析功能,能显示电压、电流和电阻的波形图以及趋势图,以便更直观的监测分析绝缘性能和绝缘崩溃时的各项指标,适用于高要求的测试分析场合。 产品具…

Pig项目新加权限类型生成Token并且解决验证问题

前言 这个教程可能不是最好的,也许是最直白的,你只需要找到对应的地方跟着博主一起去修改就能操作成功,今天用添加 mini 的授权模式的例子说一下这个 mini 模式是自己自定义的,你想叫什么都行 最近可烦死了快被折磨死人,在昨天睡了一觉,今天就解决问题了…睡一觉就能解决问题,那…

教你一步步使用实现TensorFlow 进行对象检测

在本文中,我们将学习如何使用 TensorFlow Hub 预训练模型执行对象检测。TensorFlow Hub 是一个库和平台,旨在共享、发现和重用预训练的机器学习模型。TensorFlow Hub 的主要目标是简化重用现有模型的过程,从而促进协作、减少冗余工作并加速机器学习的研发。用户可以搜索社区…

【数据结构与算法分析inC-MarkAllen】2-算法分析

文章目录 第二章——算法分析2.1 算法评价的量化理论2.1.1 函数渐进增长四种渐进增长定义运算法则两个函数相对增长率判断 2.1.2 算法分析的计算机模型2.1.3 要分析的目标最坏情况 2.1.4 一般法则for循环嵌套for循环顺序语句分支语句二分函数调用 2.2 计算方法2.2.1 循环主体中…

Android应用的加固与逆向

文章目录 前言名词释义加固手段逆向dex文件resources.arscReact Native TODO文档链接工具参考加固工具逆向工具 前言 加固与逆向是安卓攻防的两个方面。搞安卓研发时间长了就不可避免走到这一步。既要研究别人的实现,又要保护好自己的东西。个人认为,逆…

糖尿病首创新药的中国梦

《多肽链》原创出品 作者|慕白 在中国上市一款first-in-class(FIC)全球首创新药,有多难?先来看一组数据对比。 按照美国FDA的药品评价和研究中心(CDER)报告数据,2022年有37款新药…

chatgpt赋能python:介绍Python中二次函数的基本知识

介绍Python中二次函数的基本知识 在Python中,二次函数是一个重要的概念,它是由一个二次项、一次项和一个常数项构成的一个代数式。二次函数在数学和物理学中都有广泛的应用,了解二次函数的基本知识对于学习和理解这些领域都是非常重要的。在…

uni-app实现 app 小程序 手机端H5扫码功能

首先 扫码这个功能小程序和App都是有现成的方法 但是H5是不行的 我们可以看这样一段代码 <template><view><!-- #ifdef MP-WEIXIN --><button click"scan">扫描</button><view v-if"result">{{result}}</view>…

长尾词挖掘,挖掘百度相关词和下拉词的操作步骤

什么是下拉词 在搜索引擎的搜索框输入一个关键词的时候&#xff0c;搜索框会推荐一些与这个关键词有关联的长尾关键词&#xff0c;如“汉服”。 什么是相关词 在搜索引擎的搜索框输入一个关键词的时候&#xff0c;一般会推荐与这个关键词相关的长尾关键词。如“汉服”。 挖…

【SpringBoot系列】SpringBoot中 @Configuration 和 @Component 的区别及原理分析

示例 //Component Configuration public class AppConfig {Beanpublic Foo foo() {System.out.println("foo() invoked...");Foo foo new Foo();System.out.println("foo() 方法的 foo hashcode: " foo.hashCode());return foo;}Beanpublic Eoo eoo() {…

华为OD机试真题B卷 Java 实现【等差数列】,附详细解题思路

一、题目描述 等差数列 2&#xff0c;5&#xff0c;8&#xff0c;11&#xff0c;14。。。。 从 2 开始的 3 为公差的等差数列。 输出求等差数列前n项和。 数据范围&#xff1a; 1≤n≤1000 。 二、输入描述 输入一个正整数n。 三、输出描述 输出一个相加后的整数。 四…

Dell电脑出现ac power adapter电压异常的解决办法

最近这段时间不知怎么的&#xff0c;dell笔记本电脑一开机就出现下面错误&#xff1a; The AC Power Adapter Wattage Cannot be Determined. 无法确定此交流电源的功率信息。 The Battery Maynot Charge. 电池将可能无法充电。 The System Will Adjust the Performance to Ma…

springboot+java农产品网上购物商城系统005

基于springboot技术的购物商城系统是属于JavaWeb项目&#xff0c;采用的开发框架为springboot框架&#xff0c;也就是Spring mvc、Spring、MyBatis这三个框架&#xff0c;页面设计用的是jsp技术作为动态页面文件设计&#xff0c;jsp文件里可以对实现html等界面布局的代码&#…

MySQL CAST 函数与 CONVERT 函数

文章目录 CAST 函数与 CONVERT 函数1. 数字和小数点组成的字符串转换为整型2. 非数值字符串转换为整型3. 把整型转换为二进制4. 数字和小数点组成的字符串转换为浮点型 CAST 函数与 CONVERT 函数 前面我们介绍的两个函数用于字符串和日期类型之间进行相互转换&#xff0c;有时我…

C.11医疗领域实体抽取:UIE Slim最新升级版含数据标注、serving部署、模型蒸馏等教学,助力工业应用场景快速落地

NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性能调优、模型压缩算法等 专栏详细介绍:NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性能调优、模型…

量子力学专题:产生算符与消灭算符

从粒子数表象探讨问题 线性谐振子在坐标表象中表示 哈密顿算符 定态薛定谔方程 渐近解 做代换使方程变为在\zeta \approx \pm \infty 时&#xff0c;有渐进解 两端条件要求阶段&#xff0c;因此有 则线性谐振子的定态波函数为&#xff1a; 粒子数表象中线性谐振子能级和波函…

chatgpt赋能python:Python中可以连等吗?

Python中可以连等吗&#xff1f; 在Python中&#xff0c;我们可以使用单个语句实现多个变量的赋值&#xff0c;这被称为连等&#xff08;也称为多重赋值或元组赋值&#xff09;。那么&#xff0c;Python中可以连等吗&#xff1f;让我们深入了解这个问题。 什么是连等&#xf…

Golang指针, 值类型,标识符,关键字,运算符初始

Golang指针, 值类型&#xff0c;标识符&#xff0c;关键字&#xff0c;标识符 采用文章 https://www.runoob.com/go/go-operators.html本章使用go练习工具 https://tour.go-zh.org/welcome/1指针 基本介绍 基本数据类型&#xff0c;变量存的就是值&#xff0c;也叫值类型获…