一、主要内容:

1、清洗数据。将列名统一修改、处理缺失数据和异常数据、转换日期等数据类型
2、查看总体销售情况
3、商品维度进行分析。主要分析内容有:商品价格分析,商品销售量、销售额情况分析,商品关
联分析
4、店铺维度进行分析。主要分析内容有:店铺销售量、销售额法分析,店铺促销情况分析,店铺
销售时间分析,周均消费次数分析,客单价分析等
5、相关性分析:用关联关系表和相关矩阵图初步对变量之间的关系进行分析。
6、用户维度进行分析。主要分析内容有:分析用户基本购买情况,按时间(周)对用户购买情况
进行分析,用户购买力分析,用户复购率分析,RFM区分用户。

二、使用工具

Python

三、数据来源

该数据集包含2018年6月1日-2018年7月5日的公司零售的交易信息。

四、字段含义

SDATE(订单日期)
STORE_CODE(商店编号)
POSID(POS机编号)
BASK_CODE(用户编号)
PROD_CODE(商品编号)
ITEM_QUANTITY(商品数量)
ITEM_SPEND(商品实际价格)
NORMAL_PRICE(商品单价)
DISCOUNT_TYPE(折扣类型)
DISCOUNT_AMOUNT(折扣金额)

五、数据清洗

1、查看总体数据特征



从图片中初步可以看出数据集可能存在的异常数据以及需要进行初步处理的地方有以下几点:

1)数据表中的SDATE字段需要将数据类型转换为日期型方便后续计算;

2)数据表中的ITEM_SPEND字段有负值,即商品实付金额为负,为异常数据;

3)数据表中的ITEM_QUANTITY字段有负值,即商品数量为负,为异常数据;

4)数据表中的DISCOUNT_AMOUTN字段数据有正值,即折扣后金额比折扣前金额高,为异常数据。

5)为方便阅读与查看,将列名统一改为符合驼峰命名法

2、修改列名

item.columns = ['shop_date','store_id','pos_id','user_id','prod_id','item_quantity','item_spend','normal_price','discount_type','discount_amount']

3、检验缺失数据

item.apply(lambda x: sum(x.isnull()) / len(x), axis=0)

4、查看并转换数据类型

(1)查看数据表类型

如图可发现数据中没有缺失数据,因此不需要进行缺失值处理

(2)转换数据类型

数据类型中的object表示如果一列中含有多个类型,则该列的类型会是object,同样字符串类型的列也会被当成object类型,因此object类型中SDATE数据类型应为日期类型,此外数值类型由于涉及零售的金钱问题,也应都调整为两位小数。因此最终数据表数据类型需要调整的地方主要有以下几点:

1)调整日期数据类型

2)将金钱调整为两位小数

3)查看调整后数据类型

#日期数据类型
item.shop_date = pd.to_datetime(item.shop_date)
#金钱保留两位小数
pd.set_option('display.float_format', lambda x: '%.2f' % x)#将所有数据转换为两位小数

(3)查看修改后数据表数据类型

5、查看异常值并删除

根据上一小节对数据的初步查看发现的问题进行操作,在上一小节中发现数据表中商品数量、订单总金额、商品实付金额均有负值,且折扣金额为正,折扣金额的计算可能受到金额为负的影响,此外,数据也可能存在空值。因此,异常值的删除主要有以下几个操作:

1)将商品数量、订单总金额、商品实付金额为负值的调整为正值;

2)新建销售总金额字段:销售总金额=单价*数量
根据修改后的数据进行折扣金额的计算:折扣金额=销售总金额-实际付款金额(ITEM_SPEND),与实际折扣金额不同的可以判定为异常数据,进行删除操作;

3)删除过后分析是否还存在折扣金额为正的数据,若存在,也进行删除操作。

最后发现不存在折扣金额与实际折扣不同的数据,可以判定无异常值。

六、数据分析

1、总体销量数据

由总体销售情况分析可知,商店在2018年6月1日-2018年7月5日共有280878个用户进店购买过商品,总销售额为22216624.17元,有流水的商品数共19261个。

2、商品维度分析

(1)商品价格分析


由初步价格箱型图可知,客户比较青睐店铺内的低价商品,且由此图无法很明显的看出商品价格具体情况,因此下面将商品价格为0-50的价格提取出来进行分析

#求商品价格的四分位数
df_1 = pd.to_numeric(item_normal['normal_price'])
q = [df_1.quantile(i) for i in [0,.25,.5,.75,1]];q[-1] += 1
q
[0.5, 3.6, 7.0, 13.8, 51.0]

由最后的箱型图可知,商品价格最多的在3.6元~13.8元之间,也符合消费者在零售商店购买的商品价格会比较低,店家可以根据消费者的消费情况对商品进行调整,多上架一些平价、常用的商品供消费者选择。

(2)查看销量排名前十和最后的商品


本小节分析了商品销售量前10和商品销售量最后的商品数量,此外将商品销售量前10的商品绘制柱状图进行分析。由图表可知,前3销售量的商品很明显比后面商品销量多,差别至少为2000以上,而商品销量最后的商品在计算过程中发现有很多商品销量为1,将所有销量为1的商品提取出来,共有2673个,这2673个商品在这一段时间只销售了1个商品,可能为商品为不常用商品,也可能是商品本身有其他问题。

(3)查看销售额排名前十和后十的商品


本小节主要分析了商品销售额前10和商品销售量后10的商品,此外将商品销售量前10的商品绘制柱状图进行分析。由图表可知,前3销售量的商品很明显比后面商品销售额多,差别至少为50000以上,而商品销量最后的商品仅仅在1元左右,这些商品无论是数量还是销售额都很少,商品可能存在问题。

(4)查看销售量与销售额关系

由于商品销售量最后的销售量为1,数量共2673个,因此查看销售量最后2673个商品中同时销售额在后10的商品,发现销售额最后的商品均为销量为1的商品,本小节查看了销售额和销售量最后的商品编号,找出之后根据具体的商品,找出原因,考虑如何优化或者是否要下架。

(5)商品关联度分析

从以上的结果可以总结出:

从总体上看,所有组合商品中支持度数值偏低,这是由于平台销售的商品种类繁多,也可能是用户同时购买两个商品的可能性低,需要进一步进行分析;

商品组合[1570] --> [1557]的置信度最高,表示支持率在1%的情况下购买商品编号1570的用户中有70%会购买商品编号1557,可以对这两种商品进行捆绑销售;

3、店铺维度分析

进行店铺维度的分析可以分析各店铺销售情况,判断哪些店铺销售情况不好,考虑是否需要对店铺员工进行培训或裁员。

(1)店铺销售量情况分析


本小节分析了商品销售量前10的店铺,可以发现商品销售数量前2的店铺销售量远超过后面的店铺,超过150000个商品,说明D002和A001两个店铺商品数量销售情况很好。


本小节分析了商品销售额前10的店铺,进行图表分析,可以发现A001和D002两个店铺销售额远超其他店铺,至少超过了2000000元,根据上小节分析,这两个店铺销售量与销售额均远超其他店铺,说明两个店铺销售情况良好。

(2)店铺促销情况分析

4、销售情况分析

(1)下单时间分析

(2)销售额分析

由于数据表中时间仅有日期,没有具体的销售时间,且数据量由2018年6月1日-2018年7月5日,仅有约一个月的时间,因此分析月销售量没有很大的意义,因此首先对每周周一至周日的销售情况进行分组计算,求出一周内不同天的销售情况,分析每周哪一天销售情况最好。

由图表可以看出,周一至周五的下单量在一条线上下波动,没有很大的起伏,周六和周日两天的下单量远远高于周一至周五的下单量,高出了至少50000单,销售额也是同样的趋势,超出了至少400000元,可以看出一般周末用户的下单量与交易额会远远高于工作日的下单情况,商家可以考虑在周末多上一些商品供用户选择。

(3)每日销售额/销售量分析


本小节分组计算了日销售额与日销售量的数据,并绘制了折线图进行趋势对比分析,由图中可知,销售量与销售额的趋势几乎相同,且均在2018年6月16日达到最高,。

(4)周均消费次数/金额

总订单数 280878 次

周数 6 周

周均消费次数 46813 次

周均消费金额为: 3702770.0 元

(5)客单价

商场(超市)每一个顾客平均购买商品的金额,客单价也即是平均交易金额。

客单价为: 79.0 元

由于数据表中数据量由2018年6月1日-2018年7月5日,仅有约一个月的时间,因此分析月销售量没有很大的意义,因此首先对每周周一至周日的销售情况进行分组计算,求出不同周的大致销售情况,最终结果可知总订单数为280878次,共有6周的数据,周均消费次数为46813次

5、相关性分析

查看数据相关性


我们可以查看数据的相关性,值越接近1,说明相关性越强。也可以把相关性信息进行可视化,颜色越接近黄色相关性越高,越接近紫色相关性越低。由相关性图可知,商品销售总额与商品数量、折扣金额和商品销售总额相关性相对强,周数和销售额相关性最弱

6、用户分析

(1)用户角度分析


从用户角度看,每位用户平均购买8.83单位的商品,最多的用户购买了6581个商品,属于狂热用户。用户的平均消费金额(客单价)79.1元,标准差是291.24,结合分位数和最大值看,平均值和50~75分位之间的接近,肯定存在小部分的高额消费用户。

(2)按周维度分析

按周统计每周的商品销量和销售额。从图中可以看到,销售量和销售额趋势相同,没有什么异常的地方,前几周销量比较平稳,甚至有些下降,而后面几周销量逐渐高涨,可能是商店逐渐被用户所认可。

(3)观察用户消费购买力

左边的直方图的x轴代表item_spend的分组,一共30组。y轴代表item_spend中对应到各个分组的频数。从直方图看,大部分用户的消费能力确实不高,高消费用户在图上几乎看不到。这也确实符合消费行为的行业规律。

(4)分析用户的复购率

复购率 = 单位时间内,消费两次及以上的用户数 / 购买总用户数

图上复购率可知复购率一直在62%以上,可能因为是零售商店,用户会经常购买商品,尤其到最后几周复购率更高,可能因为用户已经开始信任店铺

(5)用户RFM分析




通过RFM方法,我们根据用户购买商品的数据进行分析,对用户进行了归类。在促销等很多过程中,可以更加精准化,针对不同类别的用户进行不同的符合其特点的促销方式和销售方式,不至于出现用户反感的情景。

Python进行零售商品数据分析相关推荐

  1. 利用python进行零售商品数据分析

    零售商品数据分析 文章目录 零售商品数据分析 1.数据集描述 2.明确分析目的 3.理解数据 4.数据清洗 4.1 缺失数据 4.1.1 统计缺失率 4.1.2 删除缺失值 4.2 转换数据类型 4. ...

  2. python数据分析案例简单实战项目(二)--零售商品数据分析

    项目目标 1.根据附件1和附件2分析热销商品并可视化 import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv(r' ...

  3. python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载

    python商品数据分析可视化系统(带爬虫)京东销售数据分析 一.开发技术 pycharm.MySQL数据库/sqlite3数据库.Python3.x版本.Django框架 二.功能 用户注册.登录. ...

  4. 零售-商品/门店管理系统 | 进销存系统

    零售-商品/门店管理系统 演示地址 看过我这篇文章的朋友应该可能猜到 我之前是做商品数据分析的,每天对着excel表,俗称'表哥' 因为对编程有些许的兴趣,从去年8月多开始,自学python和爬虫 - ...

  5. 零售超市数据分析经典面试题(趋势和指标分析初探)

    本文是"思路比代码重要"系列的第1篇 1 - 零售超市数据分析(趋势和指标) 01 前言 一不小心快半年没更新了,谢谢读者们的不离不弃. 以前的 "原理+代码" ...

  6. 拼多多分类ID搜索商品数据分析接口(商品列表数据,商品销量数据,商品详情数据)代码对接教程

    拼多多分类ID搜索商品数据分析接口(商品列表数据,商品销量数据,商品详情数据)代码对接教程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程wx19970108018) key String ...

  7. python与其他的数据分析有什么区别_学好python和数据分析有什么关系?

    1. 应用数学.统计学.金融学等相关专业,硕士及以上学历. 2. 有良好的产品Sense和商业敏感度,有2年以上电商.物流.零售等数据分析经验. 3. 精通SQL,有一定的Python或者R编程能力, ...

  8. 天猫实时销量接口用于商品数据分析,超详细的接口介绍

    一.天猫实时销量接口用于商品数据分析,商品监控业务,品牌监控业务. 通过商品ID或者是商品链接获取商品实时销量,30天销量,总销量数据,包括:商品标题,价格,销量,评论,主图,详情图,库存,数量,sk ...

  9. 电商价格数据监测接口/品牌商品控价接口/商品数据分析接口/比价搜索API接口,超详细的接口说明

    一.电商价格数据监测接口/品牌商品控价接口/商品数据分析接口/比价搜索API接口说明: 1.接口背景:电商平台的定价监管是很多品牌面临的一个问题,如何做好电商渠道管理? 我们通过跟多家品牌的合作以及数 ...

最新文章

  1. 浅析SEO优化中标签的作用?
  2. java---数字排序
  3. 【原】基础篇:第一篇,本节主要向大家介绍Ext的最基础的话题
  4. PHP重建索引数组的键值
  5. 基于RStudio 实现数据可视化之二
  6. [K8S]kubeadm国内镜像安装方式
  7. 量子计算会带来什么样的革命?
  8. 计算机教室网络同传及保护,用好联想网络同传系统解放信息技术教师
  9. 考研经验-东南大学软件学院软件工程(这些基础课和专业课的各种坑和复习技巧你应该知道)
  10. latex补集怎么打
  11. Kubernetes in Action 免积分下载
  12. Excel表格按行数拆分为多个文件
  13. 游戏本自动掉帧_老显卡战新游戏 GTX1060游戏本 近期游戏大作画面设定指南
  14. 自动化测试框架结构图
  15. 5分钟使用ssl证书免费配置任意域名的 https
  16. Kafka术语:AR、OSR、ISR、HW和LEO以及之间的关系
  17. 手机qq游戏显示服务器出问题,QQ游戏常见问题问与答 FAQ
  18. 测试员与程序员如何相处
  19. mac 全角/半角标点符号切换
  20. Linux嵌入式驱动开发13——ioctl接口(gpio控制使用)

热门文章

  1. 关于用单片机操作HC05进入AT模式的小总结
  2. kernel panic
  3. JavaScript中的Event.target
  4. 谷歌云服务_Google Cloud_使用注意
  5. Matlab 函数atan 函数atan2 的区别
  6. iOS app测试版发布方案TestFlight
  7. JAVAC 运行报错‘javac’不是内部或外部命令,也不是可运行的程序或批处理文件
  8. tensorflow报错Can not squeeze dim[1], expected a dimension of 1, got n for解决办法
  9. int8 和 uint8 区别
  10. 区块链技术与应用实验报告(实验三)