成本台账数据清洗与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字段校验失败。
最佳实践: 在清洗阶段,建议先做格式标准化,再做缺失/异常/重复处理。因为格式统一后,后续的重复检测和异常判断会更准确。
3. 数据清洗通用流程
数据清洗不是一次性操作,而是一个可重复的标准化流程。以下流程适用于成本台账数据清洗,并可直接对接后续的ERP通信模块。
3.1 六步清洗流程
- 数据探查(Profiling): 使用统计摘要和频次分布,识别各字段的缺失率、唯一值数量、数值范围。
- 格式标准化(Standardization): 统一日期格式、金额格式、编码大小写、去除前后空格。
- 缺失值处理(Missing Value Handling): 根据业务规则选择删除、填充默认值或插补。
- 异常值检测与修正(Outlier Detection): 基于IQR或业务阈值标记异常,人工确认或修正。
- 重复值去重(Deduplication): 按业务键分组,保留首条或最新记录。
- 数据验证(Validation): 输出清洗报告,确认数据质量指标达标。
常见陷阱: 不要跳过数据探查步骤直接开始清洗。没有探查,你无法知道缺失值分布和异常值边界,清洗效果无法量化。
3.2 清洗流程与ERP通信的衔接
清洗后的数据需要经过字段映射和格式校验才能进入ERP接口。在后续章节中,我们将把清洗流程封装为Python函数,并直接对接ERP的REST API或RFC调用。清洗流程的输出质量,直接决定了ERP通信的成功率。
课程衔接: 本章的脏数据分类和清洗流程是后续所有实战案例的基础。第3章将开始编写Python清洗脚本,第4章将对接ERP接口。请确保理解每种脏数据的处理策略。