certflow.handlers.data_cleaner module

数据清洗处理器模块

提供销售计划数据的清洗和校验功能,包括字符串清理、 数量字段规范化、订单号去特殊字符、统一空值处理等.

class certflow.handlers.data_cleaner.DataCleaner[源代码]

基类:object

数据清洗器

提供销售计划数据的清洗和校验功能. 负责处理原始导入数据中的格式问题、空值处理和字段规范化.

DATE_FIELDS

日期字段列表,定义需要规范化的日期字段名称

DATE_FIELDS = ['plan_date', 'planned_delivery_date', 'contract_delivery_date']
static clean_sale_plan(df)[源代码]

清洗销售计划数据

对原始导入的 DataFrame 执行标准化清洗:去除字符串首尾空格、 规范化日期字段、清洗订单号特殊字符、数值/文本字段规范化, 并对销售计划日期填充当月默认值。

参数:

df (DataFrame) -- 原始销售计划 DataFrame,列应为字符串或数值类型

返回:

清洗后的 DataFrame(字段已规范化,空值填充为【空白】标记)

返回类型:

pd.DataFrame

示例

>>> import pandas as pd
>>> df = pd.DataFrame({
...     "product_model": [" 阀门A ", ""],
...     "order_no": ["PO-001", "PO/002"],
...     "quantity": ["10", "5"],
... })
>>> cleaned = DataCleaner.clean_sale_plan(df)
>>> cleaned["product_model"][0]
"阀门A"
static validate_data(row)[源代码]

校验单条数据

检查数据行中产品型号是否为空、数量是否大于0.

参数:

row (dict[str, Any]) -- 单条数据字典,包含product_model和quantity等字段

返回:

校验结果元组
  • 第一个元素: 是否通过校验,True表示通过,False表示不通过

  • 第二个元素: 校验结果描述信息,通过时返回"校验通过"

返回类型:

Tuple[bool, str]

示例

>>> row = {"product_model": "阀门A", "quantity": 10}
>>> is_valid, message = DataCleaner.validate_data(row)
>>> print(is_valid)
True
>>>
>>> row = {"product_model": "", "quantity": 5}
>>> is_valid, message = DataCleaner.validate_data(row)
>>> print(message)
"产品型号不能为空"