
AI 辅助pandas 数据清洗高阶技巧缺失值不是都要填一、缺失值也有业务含义很多新手清洗数据时看到空值就填 0、填均值、填众数。这样做简单但容易把业务含义洗没。用户年龄为空可能是没填写订单优惠为空可能是没有优惠发货时间为空可能是还没发货评分为空可能是用户没有评价。不同缺失原因对分析结论影响完全不同。数据清洗不是把表变得整齐而是把数据变得可信。缺失值处理前先问一句它为什么缺能不能从其他字段推断是否应该保留为空是否会影响下游指标二、清洗链路先诊断再处理flowchart TD A[发现缺失] -- B[统计缺失比例] B -- C[按维度交叉分析] C -- D[判断缺失机制] D -- E[选择填充或保留] E -- F[记录处理规则]缺失比例要按维度看。整体缺失 5% 看似不高但如果某个渠道缺失 80%就说明采集链路可能有问题。清洗不只是 DataFrame 操作也是在排查数据生产过程。三、代码示例按业务规则处理空值下面是一段 pandas 示例展示如何区分不同字段处理。import pandas as pd def clean_orders(df: pd.DataFrame) - pd.DataFrame: result df.copy() result[discount_amount] result[discount_amount].fillna(0) result[is_shipped] result[shipped_at].notna() result[rating_missing] result[rating].isna() result[rating] result[rating].fillna(result[rating].median()) result result[result[pay_amount].notna()] return result这段代码里优惠为空可以填 0发货时间为空转成状态评分缺失保留一个标记再填中位数支付金额为空直接剔除因为核心指标无法计算。不同字段不同策略才是认真清洗。四、工程边界清洗规则要可复现数据清洗最怕写在一次性 Notebook 里过两周没人知道当时为什么这么填。建议把清洗规则沉淀成函数、配置或数据质量任务并记录字段含义、处理原因、影响范围。分析报告里也要说明关键清洗动作尤其是剔除样本和填充缺失。取舍方面保留缺失标记会增加字段数量但能帮助模型识别缺失本身的信号简单填充方便建模却可能引入偏差。对于业务报告保守处理更重要不确定就标注不要悄悄填掉。对于机器学习可以尝试多种策略并比较验证集表现。还要注意链路问题。如果某个字段突然大面积缺失不要只在分析层修补应回到埋点、ETL、数据仓库排查。清洗可以处理历史脏数据但不能替代数据质量治理。否则每天都在填坑坑却一直变大。生产环境里清洗规则还要有版本。今天把优惠金额空值填 0明天业务改成空值表示“未知优惠”同一份代码就会生成错误结论。建议在规则里记录生效时间、适用表、负责人和变更原因。Notebook 可以探索但稳定口径要进入代码仓库和调度系统。另一个实用做法是保留原始字段和清洗后字段。比如 raw_rating、rating、rating_missing 同时存在既方便建模也方便回溯。不要为了表看起来干净把原始信息彻底覆盖。数据清洗不是擦掉痕迹而是让痕迹变得可理解。生产落地补充从能跑到可维护从生产落地角度看这类方案不能只停留在主流程。更关键的是把输入校验、失败分支、资源上限和回滚路径提前写清楚。主流程通常容易在演示环境里跑通真正暴露问题的是异常输入、依赖抖动、并发放大和权限边界。一篇技术方案如果没有解释这些约束读者很难判断它能否放进真实系统。评估时建议先定义三类指标正确性指标、稳定性指标和成本指标。正确性指标回答结果是否可信稳定性指标回答失败时是否可控成本指标回答持续运行是否划算。三类指标要同时进入验收清单不能只用平均耗时或单次成功率证明方案有效。五、总结pandas 处理缺失值关键不是熟悉多少 API而是理解缺失背后的业务含义。先诊断、再处理、保留规则和影响说明数据清洗才不会把问题洗成结论。