博客
关于我
python利用excel分析过杀漏失
阅读量:797 次
发布时间:2023-03-07

本文共 2365 字,大约阅读时间需要 7 分钟。

Python利用Excel分析过杀漏失

引言

在工业检测领域,过杀漏失分析是确保产品质量的一项关键环节。本文将介绍一个基于Excel的过杀漏失分析工具,展示如何通过Python脚本实现漏失率和过杀率的计算,并生成详细的分析报告。

1. 读取Excel数据

首先,我们需要读取包含真值和预测值的Excel文件。以下是代码示例:

from openpyxl import load_workbook
from utils import *
from tqdm import tqdm
excel_contrast_path = 'test.xlsx'
job_image_dir = r"F:\新2000pcs缺陷料\2000pcs原图\S3\S3-A1-1-Right\OK\Org"
# 读取Excel表格
excel = load_workbook(excel_contrast_path)
table = excel.get_sheet_by_name(excel.sheetnames[0])

2. 提取真值和预测值

接下来,我们从Excel表格中提取真值和预测值。以下是代码示例:

# 获取真值和预测值
rows = table.max_row # 获取行数
cols = table.max_column # 获取列数
real_values_None = []
real_values = []
predict_values_None = []
predict_values = []
for i in range(rows):
real_values_None.append(table.cell(row=i+1, column=1).value)
predict_values_None.append(table.cell(row=i+1, column=2).value)
# 过滤非空值
for val in real_values_None:
if val is not None:
real_values.append(val)
for val in predict_values_None:
if val is not None:
predict_values.append(val)

3. 分析过杀漏失

然后,我们需要判断预测值与真值的匹配情况。以下是代码示例:

true_predict_list = []
false_predict_list = []
for item in predict_values:
if item in real_values:
true_predict_list.append(item)
else:
false_predict_list.append(item)
print(f"真值正确预测数量:{len(true_predict_list)}")
print(f"真值错误预测数量:{len(false_predict_list)}")

4. 计算漏失和过杀

接下来,我们计算漏失和过杀的数量。以下是代码示例:

# 计算漏失
loushi = list(set(real_values) - set(true_predict_list))
print(f"漏失:{len(loushi)},具体漏失项:{loushi}")
print(f"漏失率:{len(loushi)/len(real_values)}")
# 计算过杀
print(f"过杀:{len(false_predict_list)}")
print(f"过杀率:{len(false_predict_list)/len(predict_values)}")

5. 生成过杀漏失分析表

最后,我们将分析结果生成Excel报告。以下是代码示例:

# 创建工作簿
workbook = xlsxwriter.Workbook('过杀漏失分析表.xlsx')
worksheet = workbook.add_worksheet('漏失')
# 设置单元格高度和宽度
for i in range(0, 200):
worksheet.set_row(i, 150)
worksheet.set_column('A:O', 50)
# 插入图像
for item_index, item in enumerate(tqdm(loushi)):
try:
worksheet.write(item_index, 0, str(item))
img_dir_path = os.path.join(job_image_dir, item)
img_files = get_files_path(img_dir_path)
for img_index, img in enumerate(img_files):
worksheet.insert_image(item_index, img_index + 1, img, {'x_scale': 0.01, 'y_scale': 0.01})
except Exception as exp:
pass
# 关闭工作簿
workbook.close()

结论

通过上述步骤,我们可以清晰地看到产品检测中的漏失和过杀情况,并生成详细的分析报告。这种方法不仅能够帮助检测人员快速识别问题,还能提供数据支持用于质量改进。

转载地址:http://keofk.baihongyu.com/

你可能感兴趣的文章