python利用excel分析过杀漏失

该代码使用Python的openpyxl库读取Excel表格,对比真值和预测值来分析过杀漏失情况。它计算出预测正确的数量、漏失的数量及其率,并将结果写入新的Excel工作表中。同时,对于漏失的部分,代码还会从指定目录插入对应的图像。
摘要由CSDN通过智能技术生成

python利用excel分析过杀漏失

from openpyxl import load_workbook
from utils import *
from tqdm import tqdm
import xlsxwriter


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])
# 获取表中含有数据的行数和列数
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)

# print(real_values)
# print(predict_values)

# 预测对的
true_predict_list = []
# 预测错的
false_predict_list = []

# 判断过杀漏失
for item in predict_values:
    # print(item)
    if (item in real_values):
        #print("真")
        true_predict_list.append(item)
    else:
       # print("假")
        false_predict_list.append(item)

print(len(true_predict_list),true_predict_list)
loushi = list(set(real_values) - set(true_predict_list))
print("漏失:",len(loushi),loushi)
print("漏失率:",len(loushi)/len(real_values))
print(len(false_predict_list),false_predict_list)
print("过杀:",len(false_predict_list))
print("过杀率:",len(false_predict_list)/len(predict_values))

'''
生成过杀漏失分析表
'''


# 创建工作簿
workbook = xlsxwriter.Workbook('过杀漏失分析表.xlsx')  # 创建一个excel文件
# 创建工作表
worksheet = workbook.add_worksheet('漏失')  # 在文件中创建一个名为这是sheet1的sheet,不加名字默认为sheet1
# 设置单元格的高宽
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


# # 插入图像
# worksheet.insert_image(0,1,r"D:\workplace\python\ENVPUCPLittleTool\DRD23630C961L53RE+02+XXXXXXXXXXX+K032K04356X_1_Org_221210103215787.bmp",{'x_scale': 0.01, 'y_scale': 0.01})

# 创建工作表
worksheet = workbook.add_worksheet('过杀')  # 在文件中创建一个名为这是sheet1的sheet,不加名字默认为sheet1
# 设置单元格的高宽
for i in range(0,200):
    # 设置行高
    worksheet.set_row(i, 150)
# 设置列宽
worksheet.set_column('A:O',50)
for item_index,item in enumerate(tqdm(false_predict_list)):
    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()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值