2024 年(第 7 届)“泰迪杯”数据分析技能赛A 题 自动化生产线数据分析

2024 年(第 7 届)“泰迪杯”数据分析技能赛A 题 自动化生产线数据分析

一等奖并获泰迪杯

一、背景

随着信息技术的快速发展,工业自动化领域的智能控制系统日益完善。自动化生产线能够独立完成从物料输送到元件抓取,再到产品安装和质量检验的各个环节,这不仅极大提升了制造效率和产品质量,也有效降低了生产成本。
为了使企业的管理层和工程技术人员及时掌握生产线的运行状况和潜在问题,需要对生产线产生的数据进行深入分析,从而提高生产线的生产效率,减少产品的次品率。

二、目标

(1) 数据整理与统计。
(2) 生产线运行情况的可视化分析。
(3) 生产线影响因素分析。

三、任务

附件 1 中的文件 M101.csv、M102.csv 分别记录了某生产企业两条生产线全年加工处理过程中各个工序的生产线数据。请编程完成以下任务,根据附件 2 中的模板文件保存结果,并撰写报告,在报告中详细描述各项任务的处理思路、过程及必要的结果。所有实数类型的结果保留两位小数。

任务 1 数据整理与统计

任务 1.1

分别统计两条生产线每天的产品总数(包含不合格产品)、合格产品数、不合格产品数与合格率,将结果分别存放到 result1_1.xlsx 的 M101 和 M102 工作表中(格式见表 1),并在报告中给出各生产线全年的产品总数、合格产品数、不合格产品数与合格率(格式见表 2)。
在这里插入图片描述

导入所需库
import numpy as np
import pandas as pd

读取文件

M101 = pd.read_csv("./附件1/M101.csv", encoding="gbk")
M102 = pd.read_csv("./附件1/M102.csv", encoding="gbk")
print(M101['月份'].unique())
print(M101['日期'].value_counts())
print(M101['时间'].max())
print(12 * 28799)
# 月份一共12个月,日期为每个月的每天,时间为每天的总时长,按秒计算
# 分别统计两条生产线每天的产品总数(包含不合格产品)、合格产品数、不合格产品数与合格率
# 将结果分别存放到 result1_1.xlsx 的 M101 和 M102 工作表中(格式见表 1)
# 并在报告中给出各生产线全年的产品总数、合格产品数、不合格产品数与合格率(格式见表 2)。
grouped_101 = M101.groupby(["月份", "日期"]).agg({
   
   
    "检测累计数": "max",
    "合格产品累计数": "max",
    "不合格产品累计数": "max"
})
grouped_101.columns = ['产品总数(件)', '合格产品数(件)', '不合格产品数(件)']
grouped_101['合格率(%)'] = round(
    (grouped_101['合格产品数(件)'] / grouped_101['产品总数(件)'] * 100), 2)
grouped_101.reset_index(inplace=True)

grouped_102 = M102.groupby(["月份", "日期"]).agg({
   
   
    "检测累计数": "max",
    "合格产品累计数": "max",
    "不合格产品累计数": "max"
})
grouped_102.columns = ['产品总数(件)', '合格产品数(件)', '不合格产品数(件)']
grouped_102['合格率(%)'] = round(
    (grouped_102['合格产品数(件)'] / grouped_102['产品总数(件)'] * 100), 2)
grouped_102.reset_index(inplace=True)
from openpyxl import load_workbook
# 加载已存在的Excel文件
wb = load_workbook('./附件2/result1_1.xlsx')

# 获取工作表M101和M102
ws_101 = wb['M101']
ws_102 = wb['M102']

# 确定开始写入数据的行号,通常是已有数据的下一行
start_row_101 = ws_101.max_row + 1
start_row_102 = ws_102.max_row + 1

# 将grouped_101的数据写入M101工作表
for r_idx, row in enumerate(grouped_101.itertuples(index=False),
                            start=start_row_101):
    for c_idx, value in enumerate(row, start=1):
        ws_101.cell(row=r_idx, column=c_idx, value=value)

# 将grouped_102的数据写入M102工作表
for r_idx, row in enumerate(grouped_102.itertuples(index=False),
                            start=start_row_102):
    for c_idx, value in enumerate(row, start=1):
        ws_102.cell(row=r_idx, column=c_idx, value=value)

# 保存工作簿
wb.save('./附件2/result1_1.xlsx')

在这里插入图片描述

result1_1_M101 = pd.read_excel("./附件2/result1_1.xlsx", sheet_name="M101")
result1_1_M102 = pd.read_excel("./附件2/result1_1.xlsx", sheet_name="M102")
result1_1_M101
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值