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 plt

plt.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 生产线影响因素分析

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

完整代码请关注:

相关推荐
Altair澳汰尔1 小时前
数据分析和AI丨知识图谱,AI革命中数据集成和模型构建的关键推动者
人工智能·算法·机器学习·数据分析·知识图谱
yaosheng_VALVE4 小时前
探究全金属硬密封蝶阀的奥秘-耀圣控制
运维·eclipse·自动化·pyqt·1024程序员节
Heaven6457 小时前
6.8 Newman自动化运行Postman测试集
软件测试·自动化·接口测试·postman·newman
rpa_top7 小时前
RPA 助力电商:自动化商品信息上传,节省人力资源 —— 以影刀 RPA 为例【rpa.top】
大数据·前端·人工智能·自动化·rpa
新时代农民工--小明7 小时前
前端自动化部署更新,自动化打包部署
运维·前端·自动化
qingyunliushuiyu7 小时前
企业为何需要可视化数据分析系统
数据挖掘·数据分析·数据采集·数据可视化·数据分析系统
dundunmm9 小时前
数据挖掘之认识数据
人工智能·机器学习·信息可视化·数据挖掘
chenchihwen9 小时前
数据分析时的json to excel 转换的好用小工具
数据分析·json·excel
运维&陈同学14 小时前
【Elasticsearch05】企业级日志分析系统ELK之集群工作原理
运维·开发语言·后端·python·elasticsearch·自动化·jenkins·哈希算法
云起无垠18 小时前
【论文速读】| FirmRCA:面向 ARM 嵌入式固件的后模糊测试分析,并实现高效的基于事件的故障定位
人工智能·自动化