物流行业数据分析

news2024/11/26 19:37:12

文章目录

  • 物流行业数据分析
  • 一、数据预处理
    • 1、数据清洗
      • ① 重复值、缺失值、格式调整
      • ② 异常值处理
    • 2、数据规整
  • 二、 数据分析
    • 1、配送服务是否存在问题
    • 2、是否存在尚有潜力的销售区域
    • 3、商品是否存在质量问题
  • 三、总结
  • 参考

物流行业数据分析

Excel适合处理低量级数据,当数据量过高,Excel只能展现部分数据,不利于后续的数据分析,此时使用Python进行数据分析更加方便,有效。

首先,这里仅仅只有一个工作表,数据一共有订单号,订单行,销售时间(下单时间),交货时间(签收时间),货品交货状态(晚交货或按时交货),货品,用户的反馈情况(质量合格,返修或拒货),销售区域(华北,华南,马来西亚),数量以及销售金额等10列数据。粗略的看一下数据,我们就可以发现,在订单号和数量这两列存在部分行为空值,在销售金额这一列数据的单位不统一并且存在逗号,并且订单行这一列数据对我们分析物流行业没有帮助,这些问题都需要在数据预处理阶段进行处理!

在这里插入图片描述

认识完数据之后,我们认识一下我们需要解决的问题,具体如下所示:

1.物流配送服务是否存在问题?

2.是否存在尚有潜力的销售区域?

3.商品本身是否存在质量问题?

为了解决这些问题并得出相应的结论,接下来我们就进行数据分析阶段!

一、数据预处理

前面已经提到数据中存在的问题,那么针对问题我们就要进行相应的处理,比如删除数据中存在的重复值,并且处理缺失值(删除或填充),以及格式的调整(销售金额单位不统一),同时我们还需要对异常值进行处理(比如,销售金额存在并且等于0的属于异常值)。首先,我们加载数据并查看数据的基本信息,具体代码如下所示:

1、数据清洗

先使用info()函数查看数据信息

data=pd.read_csv('data_wuliu.csv',encoding='gbk')
data.info()

image-20230726164202658

通过info()可以看出,该物流数据共有1161条数据,每条数据有10列,其中:

1、订单号、货品交货状况和数量存在缺失值,但是确实量不大,可以删除

2、订单行对数据分析无关紧要,可以考虑删除

3、销售金额的类型是object类型(万元|元,逗号问题),数据类型需要转换成int|float类型的

具体操作如下:

① 重复值、缺失值、格式调整

删除重复记录

# 删除重复数据
# 遇到重复数据保留第一行(keep='first'),并且在原数据上修改(inplace=True)
data.drop_duplicates(keep='first', inplace=True)
data.info()

image-20230726164249635

删除缺失值

# 删除缺失值
# 按行删除(axis=0),只要一条数据中存在NA则删除(how='any') 在原数据上修改
data.dropna(axis=0, how='any', inplace=True)
data.info

image-20230726164322221

删除订单列

考虑到订单列对分析数据无关紧要,将订单列删除

# 删除订单行
# 按列删除(axis=1) 并在在原数据上修改(inplace=True)
data.drop(columns=['订单行'], axis=1, inplace=True)
data.info()

image-20230726164415502

更新索引

# 前面进行了数据删除,需要更新索引
data.reset_index(drop=True,inplace=True)
data.info()

image-20230726164615019

清洗数据

image-20230726164703730

从图中可以看出,销售金额中含有 “,”,空格,且单位不一致,对此,编写自定义过滤函数,将逗号和空格删除,并统一单位

# 修改金额格式
# 编写自定义过滤函数,删除逗号,转成float,如果是万元,则乘以10000,否则不处理
def data_deal(number):
    if (number.find('万元')) != -1:  # 找到带有万元的,取出数字,去掉逗号,转成float,*10000
        number_new = float(number[:number.find('万元')].replace(',', '')) * 10000
    else:  # 找到带有元的,删除元,删除逗号,转成float
        number_new = float(number.replace('元', '').replace(',', ''))
    return number_new

data['销售金额'] =data['销售金额'].map(data_deal)
data

image-20230726164735119

② 异常值处理

image-20230726164801163

从上图可以看出,存在销售金额为0的情况,为异常值,将其删除,同时该数据的中位数远小于平均数,即销售金额和数量存在严重右偏现象,属于正常现象,无需处理。删除代码如下:

# 销售金额=0的情况,采用删除方法,因为数据量较小
data = data[data['销售金额']!=0]
data.describe()
# 虽然销售金额和数量存在严重右偏现象,但是此现象在电商领域极为普遍,即2/8很正常,因此无需处理

2、数据规整

在前面已经提到,我么需要分析配送服务是否存在问题,我么是需要从月份的角度进行分析,例如,这个月的配送服务有多少的满意度;分析是否存在尚有潜力的销售区域,我们也是根据月份去绘制本月的销售量,然后该月份与销售量的关系,如果本月销售量低,那么则销售潜力有待增加。具体数据规整的代码如下所示:

data['销售时间']=pd.to_datetime(data['销售时间'])
data['月份']=data['销售时间'].apply(lambda x:x.month)

二、 数据分析

1、配送服务是否存在问题

从三个维度展开分析,具体分析如下:

① 月份维度

data['货品交货状况']=data['货品交货状况'].str.strip() 
data1=data.groupby(['月份','货品交货状况']).size().unstack() 
data1['按时交货率']=data1['按时交货']/(data1['按时交货']+data1['晚交货'])

image-20230726164906666

结论:从按时交货率来看,第四季度低于第三季度,猜测气候原因可能会影响配送

② 销售区域维度

data2=data.groupby(['销售区域','货品交货状况']).size().unstack() 
data2['按时交货率']=data2['按时交货']/(data2['按时交货']+data2['晚交货'])

image-20230726165015062

结论:西北地区存在突出的延时交货问题,急需解决

③ 货品维度

data3=data.groupby(['货品','货品交货状况']).size().unstack() 
data3['按时交货率']=data3['按时交货']/(data3['按时交货']+data3['晚交货'])

image-20230726165048365

结论:货品4晚交货情况非常严重,其余货品交货情况较好

④ 货品和销售区域结合

data4=data.groupby(['货品','销售区域','货品交货状况']).size().unstack() 
data4['按时交货率']=data4['按时交货']/(data4['按时交货']+data4['晚交货'])

image-20230726165137556

结论:货品4送往西北地区的晚交货情况严重,货品2送往马来西亚晚交货情况非常严重

2、是否存在尚有潜力的销售区域

① 月份维度

data5=data.groupby(['月份','货品'])['数量'].sum().unstack()
data5.plot(kind='line')
plt.show()

image-20230726165235246
结论:货品2在10月份和12月份销量猛增,原因猜测:公司加大营销力度或者开发了新的市场

② 销售区域维度

data6=data.groupby(['销售区域','货品'])['数量'].sum().unstack()

image-20230726165219608

结论:从销售区域看,每种货品销售区域为1-3个,货品1有三个销售区域,货品2有两个销售区域,其余货品均有一个销售区域

③ 月份和销售区域

data7=data.groupby(['月份','销售区域','货品'])['数量'].sum().unstack()

结论:货品2在10、12月份销量猛增,原因主要发生在原有销售区域;货品2在7、8、9、11月份销售数量还有很大提升空间,可以适当加大营销力度;货品2在8月份在两个销售区域的销量均有提升,在马来西亚地区的涨幅更大,可以尝试继续在马来西亚增大营销力度

3、商品是否存在质量问题

data['货品用户反馈']=data['货品用户反馈'].str.strip()
data8=data.groupby(['货品','销售区域'])['货品用户反馈'].value_counts().unstack()
data8['合格率']=data8['质量合格']/data8.sum(axis=1)
data8['返修率']=data8['返修']/data8.sum(axis=1)
data8['拒货率']=data8['拒货']/data8.sum(axis=1)

image-20230726165358512

结论:货品3、6、5合格率均较高,返修率比较低,说明质量还可以;货品1、2、4合格率较低,返修率较高,质量存在一定问题,需要改善,建议扩大抽检范围,增大质检力度;货品2在马来西亚的拒货率最高,同时在马来西亚的按时交货率也非常低,猜测:马来西亚人对送货的时效性要求较高,如果没有按时到货,往往考虑退货,建议加快运输;虑到货品2主要在华东地区销量大,可以考虑增大在华东的投资,适当减少马来西亚的投入

三、总结

  1. 货品4—>西北,货品2—>马来西亚两条路线存在较大问题,急需提升时效
  2. 货品2在华东地区还有较大市场空间,适合加大投入,同时货品2在马来西亚配送时效长,用户拒收率高,从成本角度考虑,应该减少投入
  3. 货品1、2、4质量存在问题,建议扩大抽检范围,增大质检力度

参考

https://blog.csdn.net/qq_51447436/article/details/125885288

https://blog.csdn.net/qq_53311560/article/details/123108983

https://blog.csdn.net/weixin_46271306/article/details/130529302

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

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

相关文章

【Hystrix技术指南】(7)故障切换的运作流程原理分析(含源码)

背景介绍 目前对于一些非核心操作,如增减库存后保存操作日志发送异步消息时(具体业务流程),一旦出现MQ服务异常时,会导致接口响应超时,因此可以考虑对非核心操作引入服务降级、服务隔离。 Hystrix说明 官方…

解决Idea 多模块,maven项目是多层级文件夹的子项时无法加入git管理的问题

问题 多模块项目,引入模块无法做git管理,第一个项目没有git分支标志,也不能像其他项目一样右键出git选项。 解决方法 发现该模块是多层级的文件夹结构,也就是项目本身在一个文件夹下。应该是要管理该文件夹。 Settings-Versi…

python使用装饰器记录方法耗时

思路 python使用修饰器记录方法耗时,目的是每当方法执行完后,可以记录该方法耗时,而不需要在每个方法的执行前后,去创建一个临时变量,来记录耗时。 方式一(不推荐): 在每个方法的…

【java面向对象中static关键字】

提纲 static修饰成员变量static修饰成员变量的应用场景static修饰成员方法static修饰成员方法的应用场景static的注意事项static的应用知识:代码块static的应用知识:单例设计模式 static静态的意思,可以修饰成员变量,成员方法&a…

AbstractQueuedSynchronizer

目录 AQS是什么AQS什么样内部类成员变量方法public如果不使用AQS会怎样 AQS的应用ReentrantLockSyncNonfairSyncFairSync 其他实现 AQS是什么 AbstractQueuedSynchronizer(AQS)是Java中的一个并发工具,位于java.util.concurrent.locks包中&a…

最新Ubuntu LVGL SDL模拟器安装

前言 本文主要说明Ubuntu 23.4安装LVGL 9.0以及基于SDL的模拟环境。 代码下载 访问lv_port_pc_eclipse可以看到相信信息,官方已经打包好了整个代码环境。 安装CMAKE。 sudo apt install cmake安装SDL。 sudo apt-get update && sudo apt-get install …

HTML(JavaEE初级系列12)

目录 前言: 1.HTML结构 1.1认识HTML标签 1.2HTML文件基本结构 1.3标签层次结构 1.4快速生成代码框架 2.HTML常见标签 2.1注释标签 2.2标题标签:h1-h6 2.3段落标签:p 2.4换行标签: br 2.5格式化标签 2.6图片标签&#…

新手家长必读:英国ISEB考试局CEO为低龄留学家庭深度解析ISEB

大家都知道,英国私校备考难就难在流程繁琐,菁英私校笔面试风格各异,考试时间各不相同。但在进入私校笔面试之前,还有非常重要的一步——通过ISEB pre-test考试。      作为英校申请敲门砖,学生在注册之后&#xff…

STM32 F103C8T6学习笔记7:双机无线串口通信

今日尝试配通俩个C8T6单片机之间的无线串口通信,文章提供原理,源码,测试效果图,测试工程下载: 目录 传输不规范问题: 串口通信资源: 单个串口资源理解: 单片机串口资源&#xf…

ModaHub魔搭社区:Milvus Cloud向量数据库不可小觑

向量数据库不可小觑 事实上,向量数据库并不是一个新的数据库技术,只是一直以来并没有什么亮眼的技术突破,因此显得有点“籍籍无名”。然而,当向量检索找到典型应用场景,成为普遍需求后,向量数据库的真正价值才日益凸显。 云和恩墨创始人,中国数据库联盟(ACDU) 主席盖…

[ Docker ] 部署 nps 和 npc 实现内网穿透

nps 原作者已停止维护,现在用 yisier1/nps 云主机上运行 nps 创建目录 mkdir -p /root/docker/nps mkdir /root/repo下载必要文件 Docker 镜像 docker pull yisier1/npsGit 仓库 git clone https://github.com/yisier/nps.git /root/repo cp -r /root/repo/nps…

【密码学】维京密码

维京密码 瑞典罗特布鲁纳巨石上的图案看起来毫无意义,但是它确实是一种维京密码。如果我们注意到每组图案中长笔画和短笔画的数量,将得到一组数字2、4、2、3、3、5、2、3、3、6、3、5。组合配对得到24、23、35、23、36、35。现在考虑如图1.4所示的内容&a…

yolov5部署 单线程与多线程对比

单线程 部署代码可参考&#xff1a; Yolov5 ONNX Runtime 的 C部署_爱钓鱼的歪猴的博客-CSDN博客 main.cpp #include "detector.h" #include <chrono> using namespace std;// 识别线程 void *detect_thread_entry(void *para){}int main(int argc, char *ar…

分布式应用:Zabbix监控MariaDB

目录 一、理论 1.Zabbix监控MariaDB 二、实验 1.Zabbix监控MariaDB 一、理论 1.Zabbix监控MariaDB &#xff08;1&#xff09;环境 zabbix服务端&#xff1a;192.168.204.214 zabbix客户端&#xff1a;192.168.204.215 &#xff08;2&#xff09;MareaDB安装 安装 za…

文献阅读:AnnoLLM: Making Large Language Models to Be Better Crowdsourced Annotators

文献阅读&#xff1a;AnnoLLM: Making Large Language Models to Be Better Crowdsourced Annotators 1. 文章简介2. 方法介绍3. 实验考察 1. 实验结果2. 消解实验3. Consistency & Stability 4. 结论 & 思考 文献链接&#xff1a;https://arxiv.org/abs/2303.16854 …

STM32F429IGT6使用CubeMX配置SPI通信(W25Q256芯片)

1、硬件电路 需要系统性的看一下W25Q256芯片手册 2、设置RCC&#xff0c;选择高速外部时钟HSE,时钟设置为180MHz 3、配置SPI 4、生成工程配置 5、相关代码 #define sFLASH_ID 0XEF4019 // W25Q256#define SPI_FLASH_PageSize 256 #define SPI_FLASH_PerWritePageSize 256#def…

爬虫小白-如何辨别请求头referer/origin反爬

目录 一、网站分析二、最终代码一、网站分析 1、网站,研究这块数据从哪个接口来的 2、反爬参数:请求头referer/origin校验和x-api-key 3、详细分析流程,看b站十一姐时一视频, 或者知识星球时光漫漫图文文章 二、最终代码 # -*- coding: utf-8 -*- # @Time : 2023-08-13

为了监控上厕所次数,我开发了一个软件

背景 最近整了一个好玩的东西&#xff0c;一个快捷指令&#xff0c;实现点击之后显示当前的日期&#xff0c;同时后台将这个时间记录到一个文件里。文件在icloud上&#xff0c;实现多个设备的同步。话不多说&#xff0c;先看看效果吧。 这个是我的“软件”图标&#xff1a; 怎…

网络安全 Day30-容器架构上

容器架构上 1. 容器架构1.1 什么是容器1.2 容器 vs 虚拟机(化) :star::star:1.3 Docker极速上手指南1&#xff09;使用rpm包安装docker2) docker下载镜像加速的配置3) 载入镜像大礼包&#xff08;老师资料包中有&#xff09; 1.4 Docker使用案例1&#xff09; 案例01&#xff1…

第12集丨Vue 江湖 —— 内置指令

目录 一、v-text二、v-html2.1 基本使用2.2 cookie原理2.2.1 登入成功后cookies的信息2.2.2 手动增加cookie值2.2.3 cookie edit 三、v-cloak3.1 案例 四、v-once五、v-pre 到本节为止&#xff0c;我们学过的指令: v-bind &#xff1a;单向绑定解析表达式v-model &#xff1a;…