成本台账数据清洗与ERP连接通信机制调试实战 - 第2节

2. 数据清洗基础:脏数据的定义与分类

在成本台账数据进入ERP系统之前,原始数据几乎必然包含各种“脏数据”。脏数据是指不符合数据质量规范、无法被下游系统直接消费或会导致分析结果失真的数据记录。本章将系统定义脏数据的四种核心类型,并给出数据清洗的通用流程。

2.1 脏数据的四大分类

分类 定义 成本台账典型场景 影响等级
缺失值 数据记录中某个字段为空或不存在 物料编码为空、成本金额字段为NULL 高
异常值 数值明显偏离正常分布范围 单位成本为负数、金额超出业务上限100倍 高
重复值 两条或多条记录在关键字段上完全一致 同一笔采购订单号+物料号出现两次 中
格式不一致 同一字段在不同记录中使用不同编码规则或数据类型 日期格式混用“2024-01-01”与“20240101”;金额含逗号分隔符 中
实战提示: 成本台账中,缺失值和异常值是导致ERP接口报错的最常见原因。在清洗阶段优先处理这两类,可减少80%以上的通信调试故障。

2.2 脏数据分类详解

2.2.1 缺失值

缺失值表现为字段值为空(NULL)或空字符串。在成本台账中,常见缺失字段包括:物料编码、成本中心、金额、币种。处理策略分为删除记录、填充默认值、或使用统计值(均值/中位数)插补。

2.2.2 异常值

异常值指数据分布中明显偏离正常区间的值。例如,某物料单位成本为-500元(负数),或单笔金额超过历史最大值100倍。检测方法包括Z-Score、IQR四分位距、以及业务规则阈值。

2.2.3 重复值

重复值指在关键业务键(如采购订单号+物料号+日期)上完全一致的多条记录。重复数据会导致成本汇总翻倍,直接影响ERP库存估值和成本核算。

2.2.4 格式不一致

格式不一致是ERP集成中最隐蔽的问题。例如:日期字段同时出现“2024/01/01”、“2024-01-01”、“20240101”;金额字段混用“1,234.56”与“1234.56”;物料编码大小写不一致。这类问题在数据加载阶段会直接触发ERP字段校验失败。

最佳实践: 在清洗阶段,建议先做格式标准化,再做缺失/异常/重复处理。因为格式统一后,后续的重复检测和异常判断会更准确。
脏数据分类与清洗优先级 缺失值 优先级:高 异常值 优先级:高 重复值 优先级:中 格式不一致 优先级:中 删除 / 填充 / 插补 缺失值处理 阈值 / IQR / Z-Score 异常值检测 去重(保留首条) 重复值处理 正则 / 类型转换 格式标准化 清洗后标准数据集 可加载至ERP接口 清洗顺序建议:格式标准化 → 缺失值处理 → 异常值检测 → 重复值去重

3. 数据清洗通用流程

数据清洗不是一次性操作,而是一个可重复的标准化流程。以下流程适用于成本台账数据清洗,并可直接对接后续的ERP通信模块。

3.1 六步清洗流程

  1. 数据探查(Profiling): 使用统计摘要和频次分布,识别各字段的缺失率、唯一值数量、数值范围。
  2. 格式标准化(Standardization): 统一日期格式、金额格式、编码大小写、去除前后空格。
  3. 缺失值处理(Missing Value Handling): 根据业务规则选择删除、填充默认值或插补。
  4. 异常值检测与修正(Outlier Detection): 基于IQR或业务阈值标记异常,人工确认或修正。
  5. 重复值去重(Deduplication): 按业务键分组,保留首条或最新记录。
  6. 数据验证(Validation): 输出清洗报告,确认数据质量指标达标。
常见陷阱: 不要跳过数据探查步骤直接开始清洗。没有探查,你无法知道缺失值分布和异常值边界,清洗效果无法量化。
数据清洗通用流程(六步法) ① 数据探查 统计摘要 · 缺失率 · 分布 ② 格式标准化 日期 · 金额 · 编码 · 大小写 ③ 缺失值处理 删除 · 填充 · 插补 ④ 异常值检测 IQR · Z-Score · 阈值 ⑤ 重复值去重 业务键分组 · 保留首条 ⑥ 数据验证 清洗报告 · 质量指标 清洗后标准数据集 可直接用于ERP接口加载 流程特点:每个步骤输出可量化的质量指标,便于审计和回溯 建议使用Python Pandas实现自动化清洗流水线

3.2 清洗流程与ERP通信的衔接

清洗后的数据需要经过字段映射和格式校验才能进入ERP接口。在后续章节中,我们将把清洗流程封装为Python函数,并直接对接ERP的REST API或RFC调用。清洗流程的输出质量,直接决定了ERP通信的成功率。

课程衔接: 本章的脏数据分类和清洗流程是后续所有实战案例的基础。第3章将开始编写Python清洗脚本,第4章将对接ERP接口。请确保理解每种脏数据的处理策略。