python 数据分析可视化实战 超全 附完整代码数据
代码+数据:https://download.csdn.net/download/qq_38735017/87379914
1.1 数据预处理
1.1.1 异常值检测
①将支付时间转为标准时间的过程中发生错误,经排查错误数据为‘2017/2/29’,后将其修改为‘2017/2/27’。
②经检测发现部分订单应付金额与实付金额都为0,抹去这部分异常数据。
③在检测过程中发现部分订单中商品金额异常,但由于不确定是否进行了调价或促销,所以并未清除这部分异常订单。
1.1.2 属性修改
①提取售卖机设备id后五位,方便后续处理。
②并不清楚后续任务是否需要表中部分属性信息。所以并未删除表中属性。
图1-1-1异常值监测和属性修改后部分数据
1.1.3 合并信息
以商品名称作为关键词,将附件二中商品信息添加到附件一中。添加后如下图所示。
图1-1-2合并附件1,2后的数据
1.1.4 按售货机提取数据
因不知道每个地点是否只有一台售货机,所以通过循环获得存有售货机设备ID的列表,并根据设备id进行分组,将每台售货机的销售数据保存至csv文件中,文件名分别为‘task1-1A.csv’ ‘task1-1B.csv’ ‘task1-1C.csv’ ‘task1-1D.csv’ ‘task1-1E.csv’
1.2 任务1.2
提取各售货机五月份销售数据,计算各售货机的订单量和交易额最后汇总获得总订单量和交易额。获得结果如下表。
表1-2-1各售货机五月销售情况及汇总
售货机;数据类 | 1A | 1B | 1C | 1D | 1E | ALL |
交易额 | 2392.1 | 5699 | 3729 | 3681 | 3385.1 | 18886.2 |
订单量 | 553 | 1287 | 782 | 860 | 750 | 4232 |
由上表可得,B售货机销售情况最好,A售货机销售情况最差,C,D,E售货机的销售情况相似。
1.3 任务1.3
任务要求计算每台售货机的每个月的每单平均交易额和每个月的日均交易量。
每个月的每单平均交易额:先通过月份进行分组,对每组内交易额进行加和,最后获取魅族交易单数,相除即可。
每个月的日均交易量:先通过月份进行分组,判定若是1,3,5,7,8,10,12则除31,除二月外其他则除20,2月则除28。即可得到每个月的日均交易量。
表1-3-1 A售货机每月的每单平均交易额与日均订单量
1A | 1月 | 2月 | 3月 | 4月 | 5月 | 6月 | 7月 | 8月 | 9月 | 10月 | 11月 | 12月 |
每单平均交易额 | 3.74 | 3.09 | 4.31 | 3.82 | 4.33 | 4.06 | 4.26 | 3.32 | 3.91 | 3.9 | 3.86 | 3.58 |
日均订单量 | 8.26 | 5.04 | 6.19 | 14.19 | 17.84 | 33.26 | 10.16 | 23.03 | 31.65 | 38.1 | 39.03 | 53.48 |
表1-3-2 B售货机每月的每单平均交易额与日均订单量
1B | 1月 | 2月 | 3月 | 4月 | 5月 | 6月 | 7月 | 8月 | 9月 | 10月 | 11月 | 12月 |
每单平均交易额 | 4.68 | 3.64 | 3.59 | 4.16 | 4.43 | 3.84 | 3.93 | 3.8 | 4.14 | 3.68 | 4.29 | 4.17 |
日均订单量 | 11.42 | 9.21 | 11.29 | 28.87 | 41.52 | 83.16 | 26.16 | 57 | 132.9 | 89.48 | 161.65 | 104.9 |
表1-3-3 C售货机每月的每单平均交易额与日均订单量
1C | 1月 | 2月 | 3月 | 4月 | 5月 | 6月 | 7月 | 8月 | 9月 | 10月 | 11月 | 12月 |
每单平均交易额 | 4.36 | 3.83 | 3.77 | 4.42 | 4.77 | 4.52 | 4 | 3.91 | 4.44 | 4.29 | 4.36 | 3.95 |
日均订单量 | 12.13 | 7.43 | 8.48 | 23.61 | 25.23 | 60.48 | 24.55 | 40.61 | 53.97 | 71.19 | 62.61 | 76.55 |
表1-3-4 D售货机每月的每单平均交易额与日均订单量
1D | 1月 | 2月 | 3月 | 4月 | 5月 | 6月 | 7月 | 8月 | 9月 | 10月 | 11月 | 12月 |
每单平均交易额 | 3.75 | 3.26 | 3.61 | 4.1 | 4.28 | 4.08 | 4.41 | 3.58 | 4.14 | 4.12 | 4.28 | 3.67 |
日均订单量 | 11.81 | 6.61 | 8.55 | 19.35 | 27.74 | 59.65 | 11.1 | 31.65 | 56.13 | 65.19 | 65.39 | 71.19 |
表1-3-5 E售货机每月的每单平均交易额与日均订单量
1E | 1月 | 2月 | 3月 | 4月 | 5月 | 6月 | 7月 | 8月 | 9月 | 10月 | 11月 | 12月 |
每单平均交易额 | 4.52 | 3.86 | 3.59 | 4.06 | 4.51 | 4.07 | 4.11 | 3.36 | 4.31 | 4.03 | 4.48 | 3.8 |
日均订单量 | 10.77 | 4.07 | 8.23 | 14.32 | 24.19 | 53.58 | 15.32 | 21.45 | 33.52 | 50.35 | 37.39 | 64.42 |
二、数据分析与可视化
2.1 任务2.1
绘制2017年6月销量前五的商品销量柱状图:先将时间转换为标准格式,再讲时间列换位到索引上,用户输入要绘制那一月的销量柱状图,通过循环遍历得到次月商品名单,创建等长零列表,两列表压缩成字典,依次更新字典中商品销量,根据销量对字典进行排序,获取用户画前几的柱状图,绘图。
图2-1-1六月份销量前五的商品及其销量
2.2 任务2.2
2.2.1 绘制每台售货机每月总交易额折线图
读取数据后先将支付时间转换为标准时间并换位到索引,新建用于存储总交易额的空列表,通过resample和sum获得每月的交易额并存除到列表中。新建月份列表用作x轴。设定画图参数,画图。
图2-2-1每台售货机每月总交易额折线图
由上折线图可得,所有售卖机销售额在整体上都呈上升趋势,且在6月出现小高峰,总体上B售卖机销售额高于其他售货机。
2.2.2 总交易额月环比增长率
读取数据后先将支付时间转换为标准时间并换位到索引,新建用于存储总交易额的空列表,通过resample和sum获得每月的交易额并存除到列表中。
通过循环计算所有月环比增长率,并存除到列表中
设定画图参数,画图。
如下列2-2-2.1,2-2-2.2,2-2-2.3,2-2-2.4,2-2-2.5五张图所示:
图2-2-2.1第一台售货机每月环比增长图
图2-2-2.2第二台售货机每月环比增长图
图2-2-2.3第三台售货机每月环比增长图
图2-2-2.4第四台售货机每月环比增长图
图2-2-2.5第五台售货机每月环比增长图
从上方五张月环比增长图来看,每个售货机在2,3,8月都出现了负增长的情况,在第二台售货机的11月也出现了负增长的情况。在A售货机中,增长的月环比整体呈一个下降趋势,在B售货机中,增长的月环比整体呈先升后降趋势,在C售货机中,增长的月环比整体呈一个下降趋势,在D售货机中,增长的月环比整体呈起伏趋势,在E售货机中,增长的月环比整体呈一个平稳趋势。
2.3 任务2.3
各售货机毛利润站总毛利润比例饼图:现在附加二中读取分类标准,将饮料类存放在饮料类列表中,非饮料类存放在非饮料类列表中,通过循环和判断的结合,如果商品在饮料类中则应付金额0.25,如果商品在非饮料类中则应付金额0.2。将五个售货机的毛利润放在列表中设置参数进行画图。
如下图所示:
如图所示售卖机B毛利润所占比例最大,占比为33.55%,A,E售卖机毛利润所占比例最少,A为最低只占11.57%,整体呈BCDEA依次下降趋势。
2.4 任务2.4
每月交易额均值气泡图:读取数据,将时间调整至标准格式,换位给索引,通过groupby和sum获得每个月二级类销量,十二个月合并到一起,对空缺值进行处理(设置为0),处理列名,组成索引为商品名称,属性为12个月份,值为销售额的表。
设置参数,绘图:
由气泡图可得,茶饮料,功能饮料,乳制品从高到低依次占据了交易额均值前三的位置。同时也发现所有商品以半年为一个周期,交易额均值每个月依次增加。
2.5 任务2.5
绘制售货机C6,7,8三个月订单的热力图:读取数据,支付时间调整至标准格式并设为索引
通过分组获取确定日期销量,并放入矩阵对应位置中,将矩阵转换为dataframe格式,更新索引和属性。设置画图参数并画图。
图2-5-1 C售货机6月份订单量热力图
图2-5-2 C售货机7月份订单量热力图
图2-5-3 C售货机8月份订单量热力图
从上图可得,在六月份时销售基本集中在上旬和下旬,中旬占小部分,交易时间集中于下午,16点左右。
在七月份时销售基本集中在下旬和上旬,中旬占小部分,交易时间集中于下午,16点左右。
在八月份时销售基本集中在中旬,中旬占小部分,交易时间集中于下午,16点左右。
由此可得,在六七八月时,人们通常在八点以后才进行购物活动,可以赶在八点之前进行补货,保证销售供应。同时在下午16点左右会迎来销售高峰,所以赶在16点之前进行检查,对缺货商品进行补货。
三、自动售货机画像
3.1 贴标签
设定评价指标=销量* 0.6+毛利润*0.4
给所有商品贴标签:读取数据,通过商品名进行分类,并得出统计数量作为销量,得到销量。听过饮料与非饮料类,通过商品计算获得毛利润,将销量和毛利润通过商品合并入总表中。计算获得评价指标。将评价指标由高到低降序排列,取排名前5%作为热销类商品,5%-70%作为正常销售类商品,剩余为滞销类商品,将类别存入销售情况列中。
3.2 画像
通过扩展后的标签生成画像。取评价指标前50个进行画像
3-3-1 A售货机画像
3-3-2 B售货机画像
3-3-3 C售货机画像
3-3-4 D售货机画像
3-3-5 E售货机画像
由上图可见,“东鹏特饮”,“怡宝纯净水”,“营养快线”“阿萨姆奶茶”等销量在ABCDE售货机上得评价都较为突出,应加大这部分的商品的供应量,以保证不缺货。
四、业务预测
4.1 预测原理与能否通过已有数据进行预测的原因
由于已有数据实在是太少了,我不认为可以在此基础上可以得到较为良好的预测模型。
即使我认为不能得到良好的模型,但还是要预测试验一下,考虑到数据量极其少,所以我先用了对小样本较好的SVM进行回归并预测。
预测原理:
4.2 预测结果
对数据的要求:最好多给几年的数据,只有一年的数据误差过于巨大。
预测结果:
A | 预测销售额 | 均方误差 | 解释方差 | 可决系数 |
饮料 | 911.7 | 194717 | 0.8616 | 0.8609 |
非饮料 | 476.7 | 281774 | 0.37 | 0.3314 |
B | 预测销售额 | 均方误差 | 解释方差 | 可决系数 |
饮料 | 2182 | 8250885 | 0.6096 | 0.5642 |
非饮料 | 455.8 | 2369291 | 0.5355 | 0.4398 |
C | 预测销售额 | 均方误差 | 解释方差 | 可决系数 |
饮料 | 1452 | 1297623 | 0.7408 | 0.707 |
非饮料 | 721 | 1010230 | 0.3505 | 0.2915 |
D | 预测销售额 | 均方误差 | 解释方差 | 可决系数 |
饮料 | 1329.8 | 1174716 | 0.7138 | 0.7103 |
非饮料 | 503 | 946773 | 0.2586 | 0.2554 |
E | 预测销售额 | 均方误差 | 解释方差 | 可决系数 |
饮料 | 717.4 | 717113 | 0.643 | 0.6027 |
非饮料 | 780 | 630190 | 0.4312 | 0.4187 |
下列图为对比图(可若看不清可将图拖大):
图4-2-1 A售货机饮料类预测
图4-2-2 A售货机非饮料类预测
图4-2-3 B售货机饮料类预测
图4-2-4 B售货机非饮料类预测
图4-2-5 C售货机饮料类预测
图4-2-6 C售货机非饮料类预测
图4-2-7 D售货机饮料类预测
图4-2-8 D售货机非饮料类预测
图4-2-9 E售货机饮料类预测
相关文章:
python 数据分析可视化实战 超全 附完整代码数据
代码数据:https://download.csdn.net/download/qq_38735017/873799141.1 数据预处理1.1.1 异常值检测①将支付时间转为标准时间的过程中发生错误,经排查错误数据为‘2017/2/29’,后将其修改为‘2017/2/27’。②经检测发现部分订单应付金额与实付金额都为…...
有趣的HTML实例(十三) 咖啡选择(css+js)
一个人追求目标的路途是孤单的,一个人独品辛酸的时候是寂寥的,一个人马不停蹄的追赶着,狂奔着,相信前方是一片光明,我从不放弃希望,就像我对生活的信念,没有人可以动摇。 ——《北京青年》 目录…...
【力扣-LeetCode】1139. 最大的以 1 为边界的正方形 C++题解
1139. 最大的以 1 为边界的正方形难度中等137收藏分享切换为英文接收动态反馈给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0。示例 1…...
【JavaGuide面试总结】Redis篇·下
【JavaGuide面试总结】Redis篇下1.如何使用 Redis 事务?2.如何解决 Redis 事务的缺陷?3.说说Redis bigkey吧4.大量 key 集中过期问题怎么解决的5.如何保证缓存和数据库数据的一致性?6.缓存穿透有哪些解决办法?7.缓存击穿有哪些解决…...
ForkJoinPool原理
1、概述 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架。ForkJoinPool是Java中提供了一个线程池,特点是用来执行分治任务。主题思想是将大任务分解为小任务,然后继续将小任务分解,直至能够直接解决为止,然后再依次将任…...
02 python基本语法和数据类型
基本语法 python脚本可以在python交互式shell或者代码编辑器中编写与运行。python文件的扩展名一般为.py python使用缩进来区分不同的代码块,此特性有利于提高代码可读性。 下面是一个简单的python条件语句代码: 小明=矮穷错 小红=白富美 小华=高富帅 小李=程序员某人 = &quo…...
【办公类-16-09】“2022下学期 大班运动场地分配表-跳过节日循环排序”(python 排班表系列)
样例展示:跳过节日的运动场地循环排序表(8个班级8组内容 下学期一共20周)背景需求:上学期做过一次大班运动场地安排,跳过节日。2023.2下学期运动场地排班(跳过节日)又来了。一、场地器械微调二、…...
全网多种方法分析解决HTTP Status 404资源未找到的错误,TCP的3次握手,dns域名解析,发起http请求以及cookie和session的区别
文章目录1. 文章引言2. 简述URL3. http完整请求3.1 DNS域名解析3.2 TCP的3次握手3.3 发起http请求3.4 浏览器解析html代码3.5 浏览器对页面进行渲染呈现给用户4. 解决404错误的方法5. 补充知识点5.1 cookie和session的区别5.2 ChatGPT的介绍1. 文章引言 正赶上最近ChatGPT很火…...
Django图书商场购物系统python毕业设计项目推荐
mysql数据库进行开发,实现了首页、个人中心、用户管理、卖家管理、图书类型管理、图书信息管理、订单管理、系统管理等内容进行管理,本系统具有良好的兼容性和适应性,为用户提供更多的网上图书商城信息,也提供了良好的平台&#x…...
基于模型预测控制(MPC)的悬架系统仿真分析
目录 前言 1.悬架系统 2.基于MPC的悬架系统仿真分析 2.1 simulink模型 2.2仿真结果 2.3 结论 3 总结 前言 模型预测控制是无人驾驶中较为热门的控制算法,但是对于悬架等这类系统的控制同样适用。 我们知道模型预测控制主要可以划分为三个部分: …...
Word处理控件Aspose.Words功能演示:使用 Java 拆分 MS Word 文档
Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外,API支持所有流行的Word处理文件…...
图扑数字孪生智慧机场,助推民航“四型机场“建设
前言 民航局印发的《智慧民航建设路线图》文件中,明确提出智慧机场是智慧民航的四个核心抓手之一。并从机场全域协同运行、作业与服务智能化、智慧建造与运维方面,为智慧机场的发展绘制了清晰的蓝图。 效果展示 图扑软件应用自主研发核心产品 HT for …...
内网安装管家婆软件如何实现外网访问?内网穿透的几种方案教程
管家婆软件从网络架构上分两种版本:web(浏览器http端口)访问的版本和客户端(211固定端口sqlserver数据库)访问的版本。公司库管经常用仓库登录管家婆,一旦需要在公司外部登陆访问管家婆客户端,就…...
CCNP350-401学习笔记(1-50题)
1、Which function does a fabric edge node perform in an SD-Access deployment?A. Connects endpoints to the fabric and forwards their traffic. B. Encapsulates end-user data traffic into LISP. C. Connects the SD-Access fabric to another fabric or external La…...
基于微信小程序的新冠肺炎服务预约小程序
文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器…...
网站项目部署在k8s案例与Jenkins自动化发布项目(CI/CD)
在K8s平台部署项目流程 在K8s平台部署Java网站项目 制作镜像流程 第一步:制作镜像 使用镜像仓库(私有仓库、公共仓库): 1、配置可信任(如果仓库是HTTPS访问不用配置) # vi /etc/docker/daemon.json { "…...
网络原理 (1)
网络原理 文章目录1. 前言: 2. 应用层2.1 XML2.2 json2.3 protobuffer3. 传输层3.1 UDP3.1 TCP4. TCP 内部的工作机制 (重点)1. 确认应答 2.超时重传3. 连接管理3.1 建立联系 :三次握手3.2 断开连接 : 四次挥手4. 滑动窗口5. 流量…...
LeetCode-1139. 最大的以 1 为边界的正方形【前缀和,矩阵】
LeetCode-1139. 最大的以 1 为边界的正方形【前缀和,矩阵】题目描述:解题思路一:前缀和。前缀和来记录边长。解题思路二:0解题思路三:0题目描述: 给你一个由若干 0 和 1 组成的二维网格 grid,请…...
windows10/11,傻瓜式安装pytorch(gpu),在虚拟环境anaconda
安装anaconda地址 :Anaconda | The Worlds Most Popular Data Science Platform安装选项全默认点击next就行。查看支持cuda版本cmd命令行输入nvidia-smi。下图右上角显示11.6为支持的cuda版本。要是显示没有nvidia-smi命令。得安装nvidia驱动,一般情况都…...
Revit导出PDF格式图纸流程及“批量导出图纸”
一、Revit导出PDF格式图纸流程 1、点击左上方“应用程序菜单”即“R”图标,进择“打印”选项。 2、在弹出的对话框中,需要设置图纸“打印范围”,选择“所选的视图/图纸选项”,点击“选择”,按钮,选择我们需…...
【自学Linux】 Linux文件目录结构
Linux文件目录结构 Linux文件目录结构教程 在 Linux 中,有一个很经典的说法,叫做一切皆文件,因此,我们在系统学习 Linux 之前,首先要了解 Linux 的文件目录结构。Linux 主要的目录有三大类,即根目录(/)&a…...
如何让APP在Google Play中成为特色
Google Play覆盖了 190 多个地区,数十亿的用户,所以开发者都会希望APP在应用商店中获得推荐位。 Google Play 上的精选热门应用类型:热门游戏或应用,畅销应用,安装量增长的应用,产生最多收入的应用。 那么…...
【C++】cin的处理过程
使用cin进行输入时,程序将输入视为一系列的字节,其中每个字节都被解释为字符编码。不管目标数据 类型是什么,输入一开始都是字符数据——文本数据。然后,cin对象负责将文本转换为其他类型。 为说明这是如何完成的,来看…...
读取Sentinel和Landsat 压缩包数据,直接进行波段重组、影像裁剪或者匀色镶嵌处理
波段重组在软件中查找:菜单栏-》影像基本处理-》波段处理-》波段重组,弹出如下对话框:根据对话框中的提示,输入需要处理的数据。注意:1、输入数据添加之后,需要点击其中任意一条数据,获取数据波…...
Yakit Web Fuzzer 终极能力强化:热加载 Fuzz
Background 在 HTB:BountyHunter 中,我们发现 Web Fuzzer 在使用中可以 “更强”,我们需要编写 Yak 脚本的事情,如果可以经过某些 Web Fuzzer 的优化,可以达到同样的效果。 在一个标签中,我们实现{{base6…...
Qt新手入门指南 - 如何创建模型/视图(三)
每个UI开发人员都应该了解ModelView编程,本教程的目标是为大家提供一个简单易懂的介绍。Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今ÿ…...
【Spring】手动实现简易AOP和IOC
前言 XML:通过Dom4j对XML进行解析和验证。 IOC:通过获取要创建对象的Class类型、构造函数后,通过反射来实现。 AOP:通过使用JDK动态代理和Cglib动态代理实现。 一、解析XML 1.1、解析bean标签 /*** 解析bean标签* param xmlBean…...
EasyExcel的使用
这里写目录标题先导入依赖最简单的写最简单的读項目开发中的一些操作xml一定要默認放先导入依赖 <dependencies><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.7</version><…...
基础篇(-1)-java特点、JDK、JRE、JVM区别、字节码编译、跨平台、程序运行
文章目录1.Java的特点有哪些?2.JDK和JRE和JVM的区别3.Java为什么采用字节码编译?4.什么是跨平台?5.Java程序从源代码到运行需要三步?1.Java的特点有哪些? Java是一种编程语言,被特意设计用于互联网的分布式…...
【网络编程】Java快速上手InetAddress类
概念 Java具有较好的网络编程模型/库,其中非常重要的一个API便是InetAddress。在Java.net 网络编程中中有许多类都使用到了InetAddress 这个类代表一个互联网协议(IP)地址。 IP地址是一个32(IPV4)位或128(…...
wordpress 垃圾文章/网上如何推广产品
背景 前段时间朋友辞去了北京一家小创公司Android开发的工作,准备寻找新的工作的时候,要和我聊聊天。告诉我再找不到工作就考虑转行了! 话语间无不感叹安卓有点强弩之末的味道!聊天过程中,朋友也顺带分享了一波阿里饿…...
南昌网站推广/谷歌下载官方正版
https://source.android.com/https://source.android.com/devices/ 转载于:https://www.cnblogs.com/youchihwang/p/9210446.html...
哈尔滨搜索引擎建站/nba交易最新消息
rem set pathset path%path%;C:\program files\vss\win32rem set sourcesafes db pathset SSDIRe:\vss-crmrem set current projectss cp $/test -Ymachinerem get codes by label ver1.0ss get -i-y -VVer1.0 -gwr -gf *.*...
重庆铜梁网站建设价格/最近新闻热点大事件
1.方程ax2bxc0;一元二次方程。求根△b2-4ac;若△<0方程无实根△>0,方程有两个不相同的实根x1 x2若△0,方程有两个相同的实根x(-b加减根号下b*b-4ac)/2*a 调试后: 2. 输入一个年份,判断是否是闰年(能被4整除却不能被100整除的年份)。世纪…...
做爰全过程网站/短链接在线生成官网
一、定时任务调度方式常见的有: 1、cron是一个linux下的定时执行工具,一些重要的任务的定时执行可以通过cron来实现,例如每天凌晨1点备份数据等。 2、在JAVA WEB开发中,我们也经常需要用到定时执行任务的功能,JDK提供了…...
被忽悠去做网销了/深圳网站优化哪家好
page_address宏功能描述:page_address( )宏的功能是获得物理页的逻辑地址。page_address( )的定义有多个版本,随内核编译时配置不同而不同。在笔者的机器上,page_address( )被定义成一个宏。page_address文件包含#includepage_address宏定义在…...