内容性质:可复现示例。文中示例为教学用途,不包含真实企业数据;方法与配置请结合实际条件验证。

图表之前,先写一句完整定义

“本月不良率”至少要说明统计对象、日期字段、分子、分母、单位以及排除条件。例如:按首次检验完成日期统计,分子为不合格样本件数,分母为已完成首次检验的样本件数。

不合格件数与缺陷数量不是一回事,一件产品可能存在多个缺陷。统计缺陷次数时不能不加说明地称作不良品率。来料批次拒收率、样本不良比例也不能混为一个指标。

为什么两个百分比不能直接取平均

以下为模拟数据。A 批检验 100 件,其中 5 件不合格;B 批检验 900 件,其中 9 件不合格。两批合计检验 1000 件,不合格 14 件,合计比例为 1.4%。直接平均 5% 和 1% 得到 3%,把不同规模的批次当成了相同权重。

批次检验件数不合格件数比例
DEMO-A10055%
DEMO-B90091%
合计1000141.4%
overall_rate = sum(rejected_units) / sum(inspected_units)
# 分母为 0 时显示“无有效样本”,不要显示为 0%

先清洗,再聚合

检验单与缺陷明细是一对多关系。若直接关联后求和,检验数量可能随缺陷行数重复累加。应先确定指标需要的粒度,再在正确粒度聚合,必要时先聚合缺陷明细再关联。

同一批次的首次检验与复检应有标识。若展示首次质量水平,就不能用最终复检通过结果覆盖首次记录。日期应明确采用到货、检验完成还是入库时间,并统一时区与边界。

选择能回答问题的图

趋势折线适合观察时间变化,同时展示样本量能帮助读者判断小样本波动。分类条形图适合比较缺陷类别,但应清楚区分计数与比例。看板的每个指标最好能进入对应明细,并保留当前筛选条件。

  • 概览卡:显示指标值、单位、期间及样本量。
  • 趋势图:同口径比较,不把缺失日期自动当成零。
  • 分类图:明确排序、未知类别与其他类别的处理。
  • 明细入口:能核对参与计算的原始记录。

用小数据集验算一次

随文脚本使用 Python 标准库读取两批 CSV,检查样本量和不合格件数是否合理,并计算总体比例。先用这个可以手算的数据集验证,再换成真实数据。

遇到汇总与明细不一致,依次检查关联重复、日期边界、筛选条件、复检处理和单位换算。比起先调整图表样式,找出参与计算的记录集合更有效。

python quality_metrics.py
# 预期:inspected=1000 rejected=14 rate=1.40%

示例下载