3. 数据清洗与预处理实战
小试阶段的数据往往来自多个渠道:现场记录本、在线仪表导出、实验室化验单、人工抄录的Excel表。这些数据在进入方案比选和模型计算之前,必须先经过清洗与预处理。本节聚焦三类最常见的问题——缺失值、异常值、重复记录,讲清楚判断依据、处理方法和最终如何形成一份可追溯的高质量数据集。
先建立数据字典与原始备份
清洗的第一步不是删数据,而是固定数据结构。建议先为每列建立数据字典,明确字段名、单位、量程、采集频率和允许范围。例如某小试的进水COD记为 COD_in,单位 mg/L,合理范围 100~3000;pH 记为 pH_in,合理范围 5.5~9.0;曝气量记为 Q_air,单位 L/min。同时保留一份原始数据只读副本,所有清洗操作在副本上进行,并新增 清洗标记 列记录每行处理动作,保证结果可追溯。
一个实用的做法是给每条记录分配唯一编号,格式如 R-日期-序号,例如 R-0312-007。后续无论删除、插补还是修正,都能回溯到原始行,避免“数据越洗越说不清”。
缺失值:先判断机制,再决定处理方式
缺失值不能一律删除或一律填均值。应先区分三种情形:完全随机缺失(如某天化验员请假漏测)、随机缺失(与某些条件相关,如高浊度时取样困难)、非随机缺失(如超标数据被刻意不记录)。小试数据量通常只有几十到上百条,非随机缺失尤其要警惕,发现某参数在特定工况下系统性缺失时,应回到原始记录核实,而不是直接插补。
处理方法按缺失比例和字段重要性选择:关键指标(进水COD、出水COD、水力停留时间)缺失比例低于5%时,可用相邻时间点线性插值或同工况均值插补;缺失比例5%~20%时,优先用同批次、同工况的均值或回归插补,并在清洗标记中注明“插补”;超过20%且无法从原始记录补录时,该字段不宜作为核心分析变量,应降级为辅助参考。对于分类字段(如药剂种类、运行阶段),缺失时不要猜填,保留“未知”类别更安全。
异常值:用规则加业务判断双重筛查
异常值识别常用两类规则。第一类是物理与业务规则:pH 不可能为 12.5 而同时出水达标、COD 不可能为负值、流量不可能超过设备额定值,这类直接判为无效。第二类是统计规则:对近似正态的指标可用 3σ 原则,对偏态明显的指标(如COD、浊度)更适合用箱线图的 IQR 规则,即低于 Q1−1.5×IQR 或高于 Q3+1.5×IQR 的点列为疑似异常。
统计规则筛出的点只是“疑似”,必须结合工况判断。例如某次进水COD突然从 800 mg/L 跳到 2600 mg/L,若当天记录显示是接收了高浓度母液,这就是真实波动,应保留;若当天无任何工况说明且相邻采样点平稳,则更可能是抄录错误或单位混淆(如把 g/L 当 mg/L)。处理方式包括:核实后修正、标记为异常但不删除、或整行剔除。建议保留异常标记列,分析时可按需排除,而不是物理删除后无法复原。
重复记录:识别“真重复”与“假重复”
重复记录常见于多表合并和人工补录。判断重复不能只看整行是否完全相同,还要看业务主键。小试数据的主键通常是“采样时间+采样点+指标”,同一采样时间同一采样点出现两条不同数值,属于冲突重复,需要判断哪条有效(如以化验室原始单为准);完全相同的行则属于冗余重复,保留一条即可。合并多批次数据时,还要注意时间格式不统一造成的“伪重复”,例如 2024/3/12 与 2024-03-12 实际是同一天,应先统一为 YYYY-MM-DD HH:mm 格式再判重。
一个可复现的处理示例
假设某批次小试共 48 条记录,字段包括采样时间、进水COD、进水pH、曝气量、出水COD、出水氨氮。清洗时按以下顺序执行,并记录每步影响行数:
步骤1 统一时间格式,48行 → 48行(无变化)
步骤2 按“采样时间+采样点”判重,发现3组冲突重复
→ 以化验室原始单为准,保留3条,剔除3条,剩45行
步骤3 物理规则筛查:出水COD出现-15 mg/L 1条 → 判无效,标记剔除,剩44行
步骤4 IQR筛查进水COD:Q1=620,Q3=980,IQR=360
上限=980+1.5×360=1520,下限=620-540=80
发现1条2600 mg/L → 核实为接收高浓度母液,保留并标记“真实波动”
步骤5 缺失值:曝气量缺失2条(4.5%),用同工况均值插补并标记
步骤6 输出:44条有效记录 + 清洗标记列 + 数据字典
这个示例中的数值属于教学假设,实际项目应以真实记录为准。关键在于每一步都留下“处理了什么、为什么、影响多少行”的痕迹,而不是只交出一张看起来干净的表。
预处理:让数据真正可用于分析
清洗解决“对不对”,预处理解决“能不能算”。常见操作包括:对COD、浊度等偏态指标做对数变换以稳定方差;对不同批次数据做标准化或按批次中心化,消除批次间系统偏差;把运行阶段、药剂类型等分类变量编码为哑变量;按时间排序并检查采样间隔是否均匀,为后续负荷计算和趋势分析打基础。若后续要做去除率计算,应确保进水与出水记录按同一采样事件配对,避免时间错位导致去除率虚高或为负。
完成上述工作后,得到的数据集应满足:字段含义与单位明确、时间格式统一、重复记录已处理、缺失与异常均有标记和依据、关键指标可直接参与计算。这样的数据集才能支撑后续的去除率分析、参数相关性判断和工艺方案比选,而不是在建模阶段反复返工。