基于天猫订单的数据分析
文章目录
- 前言
- 一、项目介绍
- 二、实验环境
- 三、分析思路
- 四、数据预处理
- 1. 将csv文件导入MySQL数据库中
- 2. 缺失值处理
- 3. 异常值处理
- 4. 重复值处理
- 五、数据分析
- 1. 描述性统计分析
- 2. 总体销售情况
- 3. 周、日销售情况
- 4. 产品价格
- 5. 地区分析
- 6.转化率分析
- 总结
前言
该项目来自和鲸社区天猫订单数据分析
该项目本来使用的是Python语言,但因自身的SQL+Excel实战经验较少,使用SQL+Excel进行分析。
分享给大家,如有错误,烦请指出!
一、项目介绍
对2020年2月份的真实天猫订单成交数据(共28010条记录)进行数据分析,阐述销售现状、挖掘潜在规律、发现存在问题、提出可行性建议。
数据集介绍:
数据集来自和鲸,包含了天猫2020年2月份的共28010条订单数据,有以下7个字段:
- 订单编号:共28010条
- 总金额:该笔订单的总金额
- 买家实际支付金额:实际成交金额。分为已付款和未付款两种情况:
已付款:买家实际支付金额 = 总金额 - 退款金额
未付款:买家实际支付金额 = 0 - 收货地址:维度为省份,共包含31个省市
- 订单创建时间:2020年2月1日 至 2020年2月29日
- 订单付款时间:2020年2月1日 至 2020年3月1日
- 退款金额:付款后申请退款的金额。没有申请退款或没有付过款,退款金额为0
二、实验环境
MySQL、VScode、Excel、Python
三、分析思路
分析目的:天猫2月份的订单情况,给出策略以提高销售额
思路:因为该数据只有订单的信息,首先使用多维度拆解分析方法把订单拆解为付款金额、付款时间、付款地区,并根据付款的业务流程,分析提交订单、付款以及退款的转化率。
1、根据付款金额区间将订单进行分组,查看每个区间的订单量分布。使用对比方法分析不同区间的数据指标。例如不同区间的销售额、销量、退款率。
2、根据付款金额将订单进行分组,查看月、周、日销售额、销量的变化趋势
3、根据付款地区将订单进行分组,查看每个地区的销售额和销量
四、数据预处理
优质的数据总是胜过优质的模型。
1. 将csv文件导入MySQL数据库中
参考:将CSV文件导入MySQL表
从和鲸社区下载order_report.csv 数据集,保存至mysql.ini文件规定的目录下
SQL语句创建表tmall
CREATE TABLE tmall( order_id int NOT NULL PRIMARY KEY COMMENT 'Primary Key',total_amount float(9,1) NOT NULL COMMENT 'total amount',actual_amount float(9,1) NOT NULL COMMENT 'actual amount',address VARCHAR(255) NOT NULL COMMENT 'content',order_time DATETIME NOT NULL,pay_time DATETIME,refund_amount float(9,1)
) DEFAULT CHARSET UTF8 COMMENT 'newTable';
将数据从csv文件导入tmall表中
LOAD DATA INFILE 'C:/web/xxxx/uploads/order_report.csv'
INTO TABLE tmall
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
查看tmall表结构
desc tmall
2. 缺失值处理
用count函数计算每个字段不为NULL的行数
发现实际付款金额存在缺失值,但实际生活中存在下单但是不付款的情况,而且在建表时’订单付款时间’数据字段设置可空,因此没有出现错误数据,判断不需要对其进行处理。
3. 异常值处理
忽视异常值的存在是十分危险的,如果不加剔除地把异常值包括进数据的计算分析过程中,那么将对结果会带来不良影响。
参考知乎博客:异常值处理
计算数字的关键特征。可以运用五数概括法对每个变量进行分析:最小值(min)、下四分位数(第 25 个百分位数)、平均值(mean)或中位数(median)、上四分位数(第 75 个百分位数)和最大值(max)。并通过箱线图、直方图进行可视化分析。
使用python绘制了总金额的箱线图:
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('C:/web/xxx/uploads/order_report.csv')
plt.boxplot((data['总金额']),labels=('x'))
plt.show()
发现有一个订单总金额超过了175000,并且通过查找该订单也没有实际付款,所以该订单被认为是异常值删除。
对实际支付金额、退款金额进行箱线图可视化,均为发现有异常值。
4. 重复值处理
验证使用count(distinct xx)计算的行数是否和总行数一致,如果一致说明没有出现重复值。
也可以通过group by查找重复的行
五、数据分析
1. 描述性统计分析
描述性分析的目的是展现样本的关键数字特征,它应该阐明可以概括数据内分布的关键数字
例如:最小值(min)、下四分位数(第 25 个百分位数)、平均值(mean)或中位数(median)、上四分位数(第 75 个百分位数)、最大值(max)、分布类型等等。
2. 总体销售情况
计算2月份每天的成交金额GMV和订单数。
GMV:成交金额,属于电商平台的成交类指标,主要指拍下订单的总金额,包含付款和未付款两部分。
select DATE_FORMAT(order_time,"%Y-%m-%d") as day, sum(total_amount) as gmv,
count(*) as order_num
from tmall
group by day
order by day
into outfile 'C:/web/mysql-8.0.19-winx64/uploads/day_order.csv' fields terminated by "," escaped by '' optionally enclosed by '' lines terminated by '\n' ;
信息获取
1、2.17日之前,销售额都很少
2、2.10-2.16销售额都仅在1000内
3、2.17日的销售额持续增长,且在2.25日达到了本月最高销售额33.9万
原因分析
3. 周、日销售情况
分析一周内的销售趋势
需要思考如何把时间类型转换为周,参考date_format函数
这里还需注意,每个月多少个周一、周二是不固定的,需要求平均
select week,
case week when 6 then order_num/5
else order_num/4 end as order_num,
case when week = 6 then total/5
else total/4 end as total
from (
select DATE_FORMAT(order_time,"%w") as week, count(*) as order_num,sum(actual_amount) as total
from tmall
group by week
order by week) t
观察到的信息:
1、每周周五销售额最高,其次是周二和周四
2、周末和周一销售额最低
分析
1、周五下班开启周末生活,大多数人可能会选择在周五购物来放松
2、周末大多数人会选择外出休闲,不会花费时间在电商购物
3、促销活动可以安排在周五
分析一天中每小时的销售趋势
# 日销售情况
select DATE_FORMAT(order_time,"%H") as hour, count(*) as order_num,sum(actual_amount) as total
from tmall
where actual_amount != 0
group by hour
order by hour
观察到的信息
1、从早上六点,销量开始提升,中午11点左右、16点左右、22点左右出现销售高峰
2、销量最高是晚上22点,销量最低是凌晨5点
分析
1、在三个销量高峰时期,可以多推送促销信息,增加销量
4. 产品价格
计算订单在每个区间的数量,和占比
使用interval()函数 和 elt()函数 对生成价格区间
使用窗口函数计算每个区间的订单量的占比
SELECT *,SUM(num)OVER(PARTITION BY price)/SUM(num)OVER() as rate
from (
SELECT ELT(interval(actual_amount,0,100,200,300,400,500),'0-100','100-200','200-300','300-400','400-500','>500') as price, count(*) as num
from tmall
group by price) t
观察到的信息
1、用户每次提交订单的额度大多在0-200内
2、用户更喜欢在20-40内下单,订单量最多
3、20元以下和400以上的订单就很少了
建议:
产品推广以价格0-200的产品为主,尤其着重推广20-40元的产品,这个价格区间的产品的订单量是最多的。
5. 地区分析
select address, sum(actual_amount) as total, count(*) as order_num
from tmall
group by address
order by total desc
获得信息
销售额最高的省市是上海,其次是北京、江苏、广东、浙江;
销售额高的省市主要集中在东部和南部沿海,以及四川省;
销售额最少的省市为西藏、青海、湖北、新疆、宁夏, 主要为西部地区。
建议
西南、中部以及东北地区有很大的发展潜力,建议先从这些地区开始开展促销提高销量。
6.转化率分析
本项目中,用户行为路径为:创建订单 -> 订单付款 -> 订单成交 -> 订单全额成交
因此计算该业务流程中的转化率。思路:需要分别计算用户提交订单数量作为下单数,用户付款的数量作为付款数,用户实际支付不为空的数量作为成交数,用户实际支付不为空且没有退款的数量作为全成交数。(这里需注意付款数和成交数不一样,付款数包括用户虽然付款但是全额退款的数量)
select pay_order/order_num, actual/order_num, fullrich/order_num
from (
SELECT count(*) as order_num, count(if(pay_time, 1, null)) as pay_order, count(if(actual_amount!=0, 1, null)) as actual,
count(if(actual_amount !=0 and refund_amount=0, 1, null)) as fullrich
from tmall) t
观察的信息
1、从0.86到0.67说明有一部分用户提交订单但是全额退款了。
2、从0.67到0.66存在1%的客户部分退款
3、绝大部分的退款行为都是全额退款
建议
需要找出大部分全额退款的原因,例如质量不达标、实物与图片不符、尺寸与标注不符、包装不好导致商品破损、快递运输过慢、发货出错、价格高于其他店铺…
总结
2月总销售额为190.25万元。
为了增加销售,可以从以下几方面开展行动:
找到导致高退款率的原因并解决,这是目前最重要的事情;
促销活动可以安排在周五开始;
促销信息、产品推广广告的推送时间最好安排在晚上9点,其次是10点、15点;
产品推广以价格20-200的产品为主,尤其着重推广20-40元的产品;
保持优势省市的订单量,大力发展西南、中部以及东北地区的销量。
基于天猫订单的数据分析相关推荐
- 天猫订单之数据分析与挖掘——分类分析
天猫订单之数据分析与挖掘--分类分析 文章目录 天猫订单之数据分析与挖掘--分类分析 0. 写在前面 1. 分类分析 1.1 决策树预测 1.2 随机森林 1.3 朴素贝叶斯算法 0. 写在前面 Wi ...
- Python数据分析实战 —— 天猫订单数据分析
文章目录 项目介绍 数据介绍 导入部分库 数据预处理 数据格式整理 异常值分析 数据分析 描述性统计 周趋势.日趋势分析 产品价格分析 地区分析 转化率分析 总结 项目介绍 本项目将对2020年2月份 ...
- 大数据分析项目实战--天猫订单综合分析
天猫订单综合分析 分析订单转化率.销量趋势.地域分布统计等. 文章目录 天猫订单综合分析 一.数据背景 二.分析目的 三.读取数据 导入相关包 读取并查看数据 四.处理数据 规范字段名称 重复值与缺失 ...
- Excel数据分析项目——天猫订单交易分析
一.背景 天猫订单综合分析 为了解天猫交易的整体情况,以及各个省份订单的交易情况,对28010条数据进行分析. 二.数据理解 天猫订单交易分析数据共28010条数据.共7条字段分别如下: 订单编号:订 ...
- 【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 23页论文及实现代码
[2023年第十一届泰迪杯数据挖掘挑战赛]B题:产品订单的数据分析与需求预测 23页论文及实现代码 相关链接 (1)建模方案 [2023年第十一届泰迪杯数据挖掘挑战赛]B题:产品订单的数据分析与需求预 ...
- 【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
相关链接 [2023年第十一届泰迪杯数据挖掘挑战赛]B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一 [2023年第十一届泰迪杯数据挖掘挑战赛]B题:产品订单的数据分析与需求预测 ...
- 【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题二
相关链接 [2023年第十一届泰迪杯数据挖掘挑战赛]B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一 [2023年第十一届泰迪杯数据挖掘挑战赛]B题:产品订单的数据分析与需求预测 ...
- 美团技术沙龙01 - 58到家服务的订单调度数据分析技术
1. 2015.4.15 到家服务的订单调度&数据分析技术 58到家· 黄海斌 @xemoaya 2. agenda • 58到家介绍 • 订单管理系统介绍 • 数据分析技术的应用 3. 20 ...
- Atitit. 订单管理 收银单持久化 功能设计 基于ecshop订单结构
Atitit. 订单管理 收银单持久化 功能设计 基于ecshop订单结构 1. 54.order_info 订单 数据结构1 2. Ecshop 的订单api1 2.1. 生成订单 code b ...
最新文章
- NE 题库 38个知识点总结
- Oracle 表空间数据文件迁移图解
- .net测试篇之Moq框架简单使用
- 迭代加深搜索 C++解题报告 :[SCOI2005]骑士精神
- 深度学习之卷积神经网络 VGGNet
- C++学习笔记-类定义的注意事项和C#的区别
- 跑通通过人脸测试心率程序
- Arcgis重分类无法赋新值为小数
- 科学计算机计算内插法,线性插值计算器
- 在线客服系统对接微信小程序(客服消息推送)
- linux crond定时任务,Linux之定时任务Crond使用
- 授权公众号第三方平台和开发者模式冲突吗?
- YuniKorn 介绍
- 【个人笔记】SIPp学习-注册,呼叫与超时
- 【Linux】vim全选,全部复制,全部删除
- L. Spicy Restaurant(bfs)
- 干电池升压IC,PW5100电路设计注意点
- Python课后作业 2. 旋转魔方阵(文件) ---- (第七次作业)
- kill -kill 20071125 20080101
- linux shell 执行存储过程,在shell中调用执行存储过程
热门文章
- 集成框架 -- 快手接入
- 团队的英文翻译缩写_动漫团队名称-团队英文名称~~人数不限的、
最好是** – 手机爱问...
- 二氧化硅纳米微球光子晶体乳液聚合聚苯乙烯核壳结构/中空二氧化硅/钛纳米微球的制备方法
- 剪映导出帧率选多少_剪映帧率是什么 剪映帧率在哪设置
- c语言学习周报(2020.11.21-11.28)
- 日积一步3(求解点到平面二次曲线的最近距离)
- python 对中文文件求交集、并集、差集
- Docker的中央仓库
- 顶刊实证复现:排污权交易机制是否提高了企业全要素生产率 (思路梳理+全数据源+python代码)
- java 异常恢复_Java学习之异常处理