使用 Python 编程语言进行供应链分析

前言

要分析一家公司的供应链,我们需要供应链不同阶段的数据,如有关采购、制造、运输、库存管理、销售和客户人口统计的数据。我为这项任务找到了一个理想的数据集,其中包括一家时尚和美容初创公司的供应链数据。

1. 相关数据集

让我们导入必要的 Python 库,开始执行供应链分析任务

import pandas as pd
import plotly.express as px
import plotly.io as pio
import plotly.graph_objects as go
pio.templates.default = "plotly_white"

data = pd.read_csv("supply_chain_data.csv")
print(data.head())
  Product type   SKU      Price  Availability  Number of products sold  \
0     haircare  SKU0  69.808006            55                      802   
1     skincare  SKU1  14.843523            95                      736   
2     haircare  SKU2  11.319683            34                        8   
3     skincare  SKU3  61.163343            68                       83   
4     skincare  SKU4   4.805496            26                      871   

   Revenue generated Customer demographics  Stock levels  Lead times  \
0        8661.996792            Non-binary            58           7   
1        7460.900065                Female            53          30   
2        9577.749626               Unknown             1          10   
3        7766.836426            Non-binary            23          13   
4        2686.505152            Non-binary             5           3   

   Order quantities  ...  Location Lead time  Production volumes  \
0                96  ...    Mumbai        29                 215   
1                37  ...    Mumbai        23                 517   
2                88  ...    Mumbai        12                 971   
3                59  ...   Kolkata        24                 937   
4                56  ...     Delhi         5                 414   

  Manufacturing lead time Manufacturing costs  Inspection results  \
0                      29           46.279879             Pending   
1                      30           33.616769             Pending   
2                      27           30.688019             Pending   
3                      18           35.624741                Fail   
4                       3           92.065161                Fail   

   Defect rates  Transportation modes   Routes       Costs  
0      0.226410                  Road  Route B  187.752075  
1      4.854068                  Road  Route B  503.065579  
2      4.580593                   Air  Route C  141.920282  
3      4.746649                  Rail  Route A  254.776159  
4      3.145580                   Air  Route A  923.440632  

[5 rows x 24 columns]

让我们来看看数据集的描述性统计:

print(data.describe())
            Price  Availability  Number of products sold  Revenue generated  \
count  100.000000    100.000000               100.000000         100.000000   
mean    49.462461     48.400000               460.990000        5776.048187   
std     31.168193     30.743317               303.780074        2732.841744   
min      1.699976      1.000000                 8.000000        1061.618523   
25%     19.597823     22.750000               184.250000        2812.847151   
50%     51.239831     43.500000               392.500000        6006.352023   
75%     77.198228     75.000000               704.250000        8253.976921   
max     99.171329    100.000000               996.000000        9866.465458   

       Stock levels  Lead times  Order quantities  Shipping times  \
count    100.000000  100.000000        100.000000      100.000000   
mean      47.770000   15.960000         49.220000        5.750000   
std       31.369372    8.785801         26.784429        2.724283   
min        0.000000    1.000000          1.000000        1.000000   
25%       16.750000    8.000000         26.000000        3.750000   
50%       47.500000   17.000000         52.000000        6.000000   
75%       73.000000   24.000000         71.250000        8.000000   
max      100.000000   30.000000         96.000000       10.000000   

       Shipping costs   Lead time  Production volumes  \
count      100.000000  100.000000          100.000000   
mean         5.548149   17.080000          567.840000   
std          2.651376    8.846251          263.046861   
min          1.013487    1.000000          104.000000   
25%          3.540248   10.000000          352.000000   
50%          5.320534   18.000000          568.500000   
75%          7.601695   25.000000          797.000000   
max          9.929816   30.000000          985.000000   

       Manufacturing lead time  Manufacturing costs  Defect rates       Costs  
count                100.00000           100.000000    100.000000  100.000000  
mean                  14.77000            47.266693      2.277158  529.245782  
std                    8.91243            28.982841      1.461366  258.301696  
min                    1.00000             1.085069      0.018608  103.916248  
25%                    7.00000            22.983299      1.009650  318.778455  
50%                   14.00000            45.905622      2.141863  520.430444  
75%                   23.00000            68.621026      3.563995  763.078231  
max                   30.00000            99.466109      4.939255  997.413450 

2. 探索性分析

现在,让我们开始分析供应链,看看产品价格与产品收益之间的关系:

fig = px.scatter(data, x='Price', 
                 y='Revenue generated', 
                 color='Product type', 
                 hover_data=['Number of products sold'], 
                 trendline="ols")
fig.show()

请添加图片描述
因此,公司从护肤品中获得了更多收入,护肤品价格越高,收入越多。现在让我们来看看按产品类型划分的销售额:

sales_data = data.groupby('Product type')['Number of products sold'].sum().reset_index()

pie_chart = px.pie(sales_data, values='Number of products sold', names='Product type', 
                   title='Sales by Product Type', 
                   hover_data=['Number of products sold'],
                   hole=0.5,
                   color_discrete_sequence=px.colors.qualitative.Pastel)
                   
pie_chart.update_traces(textposition='inside', textinfo='percent+label')
pie_chart.show()

请添加图片描述
因此,45% 的业务来自护肤产品,29.5% 来自护发产品,25.5% 来自化妆品。现在我们来看看运输公司的总收入:

total_revenue = data.groupby('Shipping carriers')['Revenue generated'].sum().reset_index()
fig = go.Figure()
fig.add_trace(go.Bar(x=total_revenue['Shipping carriers'], 
                     y=total_revenue['Revenue generated']))
fig.update_layout(title='Total Revenue by Shipping Carrier', 
                  xaxis_title='Shipping Carrier', 
                  yaxis_title='Revenue Generated')
fig.show()

请添加图片描述
因此,该公司使用三家运输公司进行运输,而 B 运输公司帮助公司创造了更多收入。现在我们来看看公司所有产品的平均交付周期和平均制造成本:

avg_lead_time = data.groupby('Product type')['Lead time'].mean().reset_index()
avg_manufacturing_costs = data.groupby('Product type')['Manufacturing costs'].mean().reset_index()
result = pd.merge(avg_lead_time, avg_manufacturing_costs, on='Product type')
result.rename(columns={'Lead time': 'Average Lead Time', 'Manufacturing costs': 'Average Manufacturing Costs'}, inplace=True)
print(result)
  Product type  Average Lead Time  Average Manufacturing Costs
0    cosmetics          13.538462                    43.052740
1     haircare          18.705882                    48.457993
2     skincare          18.000000                    48.993157

3. 分析 SKU

数据集中有一列 SKUs。你一定是第一次听说。所以,SKU 是库存单位(Stock Keeping Units)的缩写。它们就像特殊的代码,可以帮助公司追踪所有不同的销售商品。想象一下,你有一家大型玩具店,里面有很多玩具。每个玩具都不一样,都有自己的名称和价格,但当你想知道还剩多少时,你需要一种方法来识别它们。因此,你要给每个玩具一个唯一的代码,就像一个只有店里人才知道的秘密编号。数据集中有一列称为 SKU。你一定是第一次听说这个词。所以,SKU 是库存单位(Stock Keeping Units)的缩写。它们就像特殊的代码,可以帮助公司跟踪所有不同的待售商品。想象一下,你有一家大型玩具店,里面有很多玩具。每个玩具都不一样,都有自己的名称和价格,但当你想知道还剩多少时,你需要一种方法来识别它们。因此,你要给每个玩具一个唯一的代码,就像一个只有店里人才知道的秘密编号。这个秘密编号叫做 SKU。

revenue_chart = px.line(data, x='SKU', 
                        y='Revenue generated', 
                        title='Revenue Generated by SKU')
revenue_chart.show()

请添加图片描述
数据集中还有一列是库存水平。库存水平指的是商店或企业库存产品的数量。现在我们来看看每个 SKU 的库存量:

stock_chart = px.line(data, x='SKU', 
                      y='Stock levels', 
                      title='Stock Levels by SKU')
stock_chart.show()

请添加图片描述
现在我们来看看每个 SKU 的订单数量:

order_quantity_chart = px.bar(data, x='SKU', 
                              y='Order quantities', 
                              title='Order Quantity by SKU')
order_quantity_chart.show()

请添加图片描述

4. 成本分析

现在我们来分析一下承运商的运费:

shipping_cost_chart = px.bar(data, x='Shipping carriers', 
                             y='Shipping costs', 
                             title='Shipping Costs by Carrier')
shipping_cost_chart.show()

请添加图片描述
在上述可视化图表中,我们发现运营商 B 帮助公司获得了更多收入。同时,它也是三家承运商中成本最高的一家。现在我们来看看按运输方式划分的成本分布:

transportation_chart = px.pie(data, 
                              values='Costs', 
                              names='Transportation modes', 
                              title='Cost Distribution by Transportation Mode',
                              hole=0.5,
                              color_discrete_sequence=px.colors.qualitative.Pastel)
transportation_chart.show()

请添加图片描述
因此,公司在公路和铁路运输模式上的货物运输费用较高。

5. 分析缺陷率

供应链中的次品率是指在发货后发现有问题或破损的产品所占的百分比。让我们来看看所有类型产品的平均缺陷率:

defect_rates_by_product = data.groupby('Product type')['Defect rates'].mean().reset_index()

fig = px.bar(defect_rates_by_product, x='Product type', y='Defect rates',
             title='Average Defect Rates by Product Type')
fig.show()

请添加图片描述
因此,护发产品的缺陷率较高。现在我们来看看按运输方式划分的不良率:

pivot_table = pd.pivot_table(data, values='Defect rates', 
                             index=['Transportation modes'], 
                             aggfunc='mean')

transportation_chart = px.pie(values=pivot_table["Defect rates"], 
                              names=pivot_table.index, 
                              title='Defect Rates by Transportation Mode',
                              hole=0.5,
                              color_discrete_sequence=px.colors.qualitative.Pastel)
transportation_chart.show()

请添加图片描述
公路运输的缺陷率较高,而航空运输的缺陷率最低。
供应链分析是指分析供应链的各个组成部分,以了解如何提高供应链的效率,为客户创造更多价值。希望您喜欢这篇关于使用 Python 进行供应链分析的文章。欢迎在下面的评论区提出宝贵的建议。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

四川省税务局CDH国产化替代实践

“传统数据仓库对于数据处理时效较低,且无法处理实时增量数据及数据变更,同时,在面对海量税务数据大规模进行查询分析等方面存在一些挑战。我们希望尽快寻找到一款能够替代CDH,并且具备灵活扩展能力的大数据解决方案,以…

关于VFX Graph的学习

关于VFX Graph的学习 转载自我的有道云笔记,目前内容不多,后续如果继续使用会更新。 前言 出于实习工作需要和毕设需要,我开始使用VFXGraph。 以前准备第一批作品集的时候,就简单地使用过,但是只是跟着教程一顿乱连…

采用Java语言开发的(云HIS医院系统源码+1+N模式,支撑运营,管理,决策多位一体)

采用Java语言开发的(云HIS医院系统源码1N模式,支撑运营,管理,决策多位一体) 是不是网页形式【B/S架构]才是云计算服务? 这是典型的误区! 只要符合上述描述的互联网服务都是云计算服务,并没有规定是网页…

深入了解Linux中的环境变量

在Linux系统中,环境变量(Environment Variables)是用于配置操作系统和应用程序运行环境的一种机制。它们储存在键值对中,可以控制程序的行为、路径查找和系统配置。本文将深入探讨环境变量的基本概念、常见类型、设置和管理方法&a…

OrangePi AIpro开箱测评

OrangePi AIpro(8T) 香橙派联合华为精心打造,建设人工智能新生态 章节一:引言 1.1 背景 香橙派(OrangePi)是深圳市迅龙软件有限公司旗下开源产品品牌,迅龙软件成立于2005年,是全球领先的开源硬件和开源软…

阿里云获取nginx头部

k8s 配置 可以修改kube-system/nginx-configuration configmap的方式, compute-full-forwarded-for: “true” forwarded-for-header: “X-Forwarded-For” use-forwarded-headers: “true” https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-g…

设计模式13——桥接模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 桥接模式(Bridge&a…

使用LabVIEW开发RFID读卡器程序

使用LabVIEW开发RFID读卡器程序,涵盖硬件选择、初始化、数据读取与处理的整个流程。通过详细的开发步骤和示例代码,展示LabVIEW在快速开发和调试RFID应用中的优势,使用户能有效实现RFID技术在各类项目中的应用。 工作原理 RFID(…

2024爆款神器!会声会影2024旗舰版,让你的视频制作技能暴涨,不学真的亏大了!

在数字内容创作的时代,视频编辑已经成为连接创意与现实的重要桥梁。无论是个人Vlog制作、在线教育课程、企业宣传还是专业影视制作,高效而强大的视频编辑软件成为了必不可少的工具。会声会影2024旗舰版,作为一款集先进技术与用户友好界面设计…

分享目前堪称最好用的车机桌面app,支持画中画模式!

好用的车机桌面了,支持悬浮画中画! 如果你想改变单调的车机桌面,那么这篇文章你不要错过了!支持地图悬浮、画中画的车机桌面,不要错过! 今天阿星给大家分享3款好用、好看的大屏桌面软件,重要的…

内网穿透端口映射内外网反弹 shell 回顾

内网穿透&端口映射&内外网反弹 shell 回顾 内网概念 我们常说的内网,一般指的是非公有 IPv4 地址的网络比如学校机房里的电脑一般为私有网络,家里的网络也是私有网络 私有网络的范围与划分 ipaddressareaA 类地址10.0.0.0~10.255.…

【408精华知识】指令字长、存储字长、机器字长大总结!

文章目录 一、三种字长二、三种字长之间的关系三、三种字长与部件位数之间的关系 一、三种字长 机器字长:等于字长,CPU一次能够处理的数据的位数。通常等于寄存器、ALU的位数。例子:windows 64位/32位,这里的64位和32位指的就是该…

工博科技联手伯尼纳,共谋食品包装外贸行业新市场,助力全球市场拓展!

4月11日,伯尼纳贸易(江苏)有限公司(以下简称“伯尼纳”)SAP项目正式启动,双方项目组成员在福建厦门出席本次项目启动会。伯尼纳SAP项目的启动标志着企业业财信息化建设进入了一个新的历程。 实现业财一体化…

9.4 Go语言入门(运算符)

Go语言入门(运算符) 目录三、运算符1. 算术运算符2. 关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符6. 其他运算符7. 运算符优先级 目录 Go 语言(Golang)是一种静态类型、编译型语言,由 Google 开发,专注…

【python】python商家会员数据分析可视化(源码+数据集+课程报告论文)

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

markdown画时序图的时候,如何自动显示每一条时序的序号

1: 现象描述 今天画时序图的时候,发现时序上面没有显示序号,看起来不够清晰,只有单纯的说明; 如下图所示 刚测试CSDN的时序图,默认是带序号的,看起来和实际使用的markdown工具有关系; 2:解决办…

Ubuntu 20.04 上安装和配置 VNC

先决条件 请确保以具有 sudo 权限的用户身份登录。建议使用具有 sudo 权限的普通用户进行处理,而不是直接使用 root 用户。创建用户并加入 sudoers 可自行百度。 安装桌面环境 大多数服务器没有安装桌面环境,因此我们首先要安装轻量级桌面环境。 Ubu…

Slash后台管理系统源码阅读笔记 后面面板中的折线图统计卡片是怎么实现的?

之前的笔记发表在博客和公众号以后,得到了一部分同学的喜爱的认可,所以今天继续。 目前这个管理系统的代码已经处理了一小部分: 接下来,我们看看第二栏那三个折线图统计卡片是怎么实现的。 这三个卡片还是使用的 antd 一行三列…

【C语言】文件操作(超级详细)

如果没有文件,我们写的程序的数据都存储在内存中,当程序退出,内存回收,数据就丢失了,下次再运行程序,已经看不到上次运行的数据了,而为了将数据持久性的保存,就需要使用文件。 一、…

什么是Capto刀柄,一起来认识一下

大家好,今天咱们不聊齿轮,说一说一款刀柄的相关内容。目前,高速加工中心的主轴转速可以达到10,000——50,000r /min ,极大地提高了生产率。高速加工工具系统的主要作用是保证刀具在机床主轴中的精确定位,将主轴的运动和…