2024 年(第 7 届)“泰迪杯”数据分析技能赛A 题 自动化生产线数据分析 完整代码结果分享

一、背景
随着信息技术的快速发展,工业自动化领域的智能控制系统日益完善。自动化生产线能够独立完成从物料输送到元件抓取,再到产品安装和质量检验的各个环节,这不仅极大提升了制造效率和产品质量,也有效降低了生产成本。
为了使企业的管理层和工程技术人员及时掌握生产线的运行状况和潜在问题,需要对生产线产生的数据进行深入分析,从而提高生产线的生产效率,减少产品的次品率。二、目标
(1)数据整理恂岖薪与统计。
(2)生产线运行情况的可视化分析。
(3)生产线影响因素分析。
三、任务
附件1中的文件 M101.csV、M102.csv 分别记录了某生产企业两条生产线全年加工处理过程中各个工序的生产线数据。请编程完成以下任务,根据附件2中的模板文件保存结果,并撰写报告,在报告中详细描述各项任务的处理思路、过程及必要的结果。所有实数类型的结果保留两位小数。
任务1 数据整理与统计
任务 1.1 分别统计两条生产线每天的产品总数(包含不合格产品)、合格产品数、不合格产品数与合格率,将结果分别存放到resultl 1.xlsx的M101和M102工作表中(格式见表 1),并在报告中给出各生产线全年的产品总数、合格产品数、不合格产品数与合格率(格式见表 2)。

import pandas as pd
df = data1
df['total_products'] = df['合格产品累计数'] + df['不合格产品累计数']# 按“月份”和“日期”分组,获取每天的最大累计值表示当天的产品数量情况
daily_data = df.groupby(['月份', '日期']).agg(产品总数=('total_products', 'max'),合格产品数=('合格产品累计数', 'max'),不合格产品数=('不合格产品累计数', 'max')
).reset_index()# 计算合格率(%),合格产品数除以产品总数并乘以100得到百分比
daily_data['合格率(%)'] = (daily_data['合格产品数'] / daily_data['产品总数']) * 100
output_path = 'result1_1.xlsx'
with pd.ExcelWriter(output_path, engine='openpyxl') as writer:daily_data.to_excel(writer, sheet_name='Sheet1', index=False)
daily_data

任务1.2 分别列出两条生产线每次故障的相关信息,按照月份、日期和开始时间升序排列,将结果分别存放到result1 2.xlsx的 M101和M102工作表中(格式见表 3),并在报告中给出各生产线每种故障一年中第 25 次发生的相关信息(格式见表4)。

任务 1.3根据任务1.2的结果,分别统计两条生产线各类故障每天发生的总次数和平均持续时长,按照生产线、月份、日期、故障类别升序排列,将结果存放到resultl 3.xlsx 中(格式见表 5:如果某天没有指定类别的故障,则该天该故障的总次数为0,平均持续时长为 Nul)。在报告中分别给出两条生产线各类故障发生的总次数、平均持续时长、故障发生频率,并进行汇总(格式见表6)。

任务1.4 分别统计两条生产线每天的有效工作时长,按照月份、日期升序排列,将结果存放到 result1 4.xlsx中(格式见表7),并在报告中给出各生产线的日平均有效工作时长(格式见表8)。有效工作时长是当天开机时长减去因故障停机的时长。

任务1.5 对生产线 M101每天推出的电路板数量、抓取的元件数量与抓取的故障次数做相关性分析,并结合问题背景解释所得到的结果。
任务2 生产线运行情况的可视化分析任务

2.1 根据各月的产品总数(包含不合格产品),以月份为横坐标,绘制两条生产线的堆叠柱状图。
任务

import pandas as pd
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei'] 
plt.rcParams['axes.unicode_minus']=False # 分别计算每月的产品总数
df1 = data1.groupby('月份').agg(产品总数=('推出累计数', 'sum')).reset_index()
df2 = data2.groupby('月份').agg(产品总数=('推出累计数', 'sum')).reset_index()# 绘制堆叠柱状图
plt.figure(figsize=(10, 6))
plt.bar(df1['月份'], df1['产品总数'], label='生产线1')
plt.bar(df2['月份'], df2['产品总数'], bottom=df1['产品总数'], label='生产线2')# 添加图例和标签
plt.xlabel('月份')
plt.ylabel('产品总数(包含不合格产品)')
plt.title('各月产品总数的堆叠柱状图(生产线1与生产线2)')
plt.legend()# 显示图形
plt.show()

2.2 根据生产线每天的不合格产品数(取值范围为[0,35])和不合格率(取值范围为[0,0.9%]),分别绘制两条生产线的双Y轴折线图。

2.3根据不同故障类别的全年发生总次数,绘制两条生,产线各故障类别的占比双层环形图。


任务 2.4 根据不同故障类别,以持续时长(单位:秒)为坐标,分别绘制两条生产线全年故障发生持续时长的叠加直方图。
任务2.5 根据4月 26 日前 100 秒生产线数据,以时间(单位:秒)为横坐标,电路板推出次序为纵坐标,绘制生产线 M101 包含4个工序的甘特图。


任务3 生产线影响因素分析
根据生产线数据,应用数据分析方法分析影响产品合格率和生产线产量的可能因素。

完整代码请关注:

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

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

相关文章

探索Python自动化新境界:Invoke库的神秘面纱

文章目录 **探索Python自动化新境界:Invoke库的神秘面纱**第一部分:背景介绍第二部分:Invoke库是什么?第三部分:如何安装Invoke库?第四部分:Invoke库函数使用方法1. 定义任务2. 执行任务3. 任务…

Qt_day4_Qt_UI设计

目录 Qt_UI设计 1. Designer 设计师(掌握) 2. Layout 布局(重点) 2.1 基本使用 2.2 高级用法 2.3 代码布局(了解) 3. Designer与C的关系(熟悉) 4. 基本组件(掌握…

conda和conda的常用命令

目录 一、什么是conda 1. conda的定义和作用 2. conda的特点 3. conda与pip的区别 二、conda的常用命令 1. 环境管理 2.包管理 3. 查看信息 4. 清理和维护 5. 频道(channel)管理 6. 导出和复制环境 7. 加速相关(镜像) 一、什么是conda 1. conda的定义和作用 2. co…

基于STM32通过TM1637驱动4位数码管详细解析(可直接移植使用)

目录 1. 单位数码管概述 2. 对应编码 2.1 共阳数码管 2.2 共阴数码管 3. TM1637驱动数码管 3.1 工作原理 3.1.1 读键扫数据 3.1.2 显示器寄存器地址和显示模式 3.2 时序 3.2.1 指令数据传输过程(读案件数据时序) 3.2.2 写SRAM数据…

16.UE5拉怪机制,怪物攻击玩家,伤害源,修复原视频中的BUG

2-18 拉怪机制,怪物攻击玩家、伤害源、黑板_哔哩哔哩_bilibili 目录 1.实行行为树实现拉怪机制 1.1行为树黑板 1.2获取施加伤害对象(伤害源) 2.修复原视频中,第二次攻击怪物后,怪物卡在原地不动的BUG 3.怪物攻击玩…

【JavaEE初阶 — 多线程】内存可见性问题 volatile

1. 内存可见性问题 内存可见性的概念 什么是内存可见性问题呢? 当一个线程对共享变量进行了修改,那么另外的线程都是立即可以看到修改后的最新值。在Java中,可以借助 synchronized、volatile 以及各种Lock 实现可见性。如果我们将变量声…

3195. 有趣的数-13年12月CCF计算机软件能力认证(组合数)

题目 思路 统计方案的时候先去分类,先放01,然后在考虑23对于第k类, 对于01的选择 对于所有的分类:本题我觉得要考虑的几个点就是:状态分类得到数学公式组合数的计算防越界处理 代码 计算组合数的代码模板&#xff1…

goframe开发一个企业网站 开发环境DOCKER 搭建16

Docker开发环境搭建的优势 环境一致性 消除"在我机器上能运行"的问题保证开发、测试、生产环境的一致性新成员可以快速搭建完整开发环境 快速部署 一键启动所有依赖服务配置文件版本控制环境迁移方便快捷 资源隔离 避免不同项目依赖冲突系统资源可控便于多版本…

C++builder中的人工智能(20):如何在C++中开发一个简单的Hopfield网络

在AI技术的发展历史中,模式识别模型是最伟大的AI技术之一,尤其是从像素图像中读取文本。其中一个是Hopfield网络(或称为Ising模型的神经网络或Ising–Lenz–Little模型),这是一种递归神经网络形式,由John J…

【Leetcode 中等】34. 在排序数组中查找元素的第一个和最后一个位置

原题链接 Leetcode 34. 在排序数组中查找元素的第一个和最后一个位置 题目 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。 你必…

金融学期末速成笔记

【拯救者】金融学速成(基础习题) 重点: 市场经济是发达的商品经济。在市场经济条件下,市场机制作为资源配置方式,发挥基础性作用。 除具有商品经济的一般特征外,与商品经济相比,市场经济还具有一些新的特征…

云计算复习文档

云计算复习文档 一 云计算概述 名词: 云计算 1.0 : 面向数据中心管理员的IT基础设施资源虚拟化阶段 通过计算虚拟化技术将企业IT应用与底层的基础设施彻底分离、解耦 将多个企业IT应用实例及运行环境复用在相同的物理服务器上,并通过虚…

【Docker容器化技术】docker安装与配置、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库

文章目录 一、Docker的安装与配置1、docker概述2、安装docker3、docker架构4、配置镜像加速器 二、Docker命令1、服务相关命令2、镜像相关命令3、容器相关命令 三、Docker容器数据卷1、数据卷概念及作用2、配置数据卷3、配置数据卷容器 四、Docker应用部署实战1、部署MySQL2、部…

window11安装elasticsearch+Kibana

1、下载elasticsearch与elasticsearch 下载elasticsearch 查看elasticsearch对应的Kibana版本 下载elasticsearch解压后文件目录如下 可执行脚本文件,包括启动elasticsearch服务、插件管理、函数命令等 bin配置文件目录,如elasticsearch配置、角色配置、jvm配置等 conf 默认…

云技术基础学习

声明 学习内容来自 B站 up 主《泷羽 sec》,如涉及侵权等问题,请及时联系,本人将马上删除文章。在此郑重声明,文章仅限于交流学习,任何其他违法行为与本人及泷羽 sec 无关。请务必遵守法律法规,切莫越过法律…

初识Linux · 匿名管道

目录 前言: 匿名管道 理解为什么? 理解是什么? 理解怎么做? 前言: 引入管道之前,我们引入几个问题,进程通信的相关问题。 第一个是进程之间为什么要通信,对于进程间通信来说&…

MySQL数据库:本地部署数据库以及安装彩虹猫【Navicat】

文章目录 一.安装前准备工作1.下载并解压文件2.修复电脑缺失的文件 二.本地部署MySQL1.先解压mysql-8.0.25-winx64.zip,并把文件放到安装需要的位置,再把my.ini文件放到mysql-8.0.25-winx64的根目录2.修改注册表的根目录信息为自己的安装装路径3.进命令符…

计算机网络作业一

一共8次作业,都挺难的,只能在老师的要求下尽力尝试。 任务:探测Internet (IPv4和IPv6) 1. 探测并估计有多少地址是活动的,解释你的方法并估计误差范围 2. 找到尽可能多的关键地址,然后解释它们是什么,为…

联通10010 阿里滑块 231 分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 有相关问题请第一时间头像私信联系我删…

DAY58||110.字符串接龙 |105.有向图的完全可达性 |106.岛屿的周长

110.字符串接龙 110. 字符串接龙 题目描述 字典 strList 中从字符串 beginStr 和 endStr 的转换序列是一个按下述规格形成的序列: 1. 序列中第一个字符串是 beginStr。 2. 序列中最后一个字符串是 endStr。 3. 每次转换只能改变一个字符。 4. 转换过程中的中间字符串…