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

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

完整代码请关注:

相关推荐
用户Taobaoapi201413 小时前
京东店铺所有商品API技术开发文档
大数据·数据挖掘·数据分析
总有刁民想爱朕ha13 小时前
车牌模拟生成器:Python3.8+Opencv代码实现与商业应用前景(C#、python 开发包SDK)
开发语言·python·数据挖掘
qinyia15 小时前
用 Wisdom SSH 轻松实现服务器自动化任务调度
服务器·自动化·ssh
明达智控技术15 小时前
MR30分布式I/O在面机装备中的应用
分布式·物联网·自动化
Stestack15 小时前
人工智能常见分类
人工智能·分类·数据挖掘
demaichuandong16 小时前
详细讲解锥齿轮丝杆升降机的加工制造工艺
人工智能·自动化·制造
疯狂的维修16 小时前
c#中public类比博图
c#·自动化
weixin_4684668518 小时前
树莓派32位与64位系统安装teamviewer远程软件
linux·单片机·自动化·树莓派·远程控制·vnc·teamviewer
华科云商xiao徐19 小时前
告别IP被封!分布式爬虫的“隐身”与“分身”术
爬虫·数据挖掘·数据分析
厦门辰迈智慧科技有限公司1 天前
水闸自动化监控系统解决方案
运维·服务器·物联网·安全·自动化·监测