pandas 缺失值填充策略

644 字
3 分钟
pandas 缺失值填充策略

pandas 缺失值填充策略#

缺失值处理不能一律填 0。不同字段的缺失含义不同:金额缺失、分类缺失、日期缺失、文本缺失,处理方式都应该不同。

填充前先问:这个缺失是未知、没有发生,还是数据采集失败?

先统计缺失#

missing = df.isna().mean().sort_values(ascending=False)
print((missing * 100).round(2).head(20))

缺失率高的字段要重点判断是否还能用于分析。缺失率很低的字段,也要看缺失是否集中在某个类别或时间段。

常见填充策略#

  • 数值字段:可填 0、中位数、均值,或保留缺失,取决于业务含义。

  • 分类字段:可以填 unknown,但要避免把未知当成真实类别。

  • 日期字段:通常不建议随意填充,除非有明确规则。

  • 文本字段:可填空字符串,但分析时要区分空文本和缺失。

示例#

df["amount"] = df["amount"].fillna(0)
df["city"] = df["city"].fillna("unknown")
df["age"] = df["age"].fillna(df["age"].median())

填充后要留痕#

重要字段填充前可以先创建标记列,记录哪些值原本缺失。这样后续模型或分析能知道哪些数据是补出来的。

df["amount_was_missing"] = df["amount"].isna()
df["amount"] = df["amount"].fillna(0)

实战复盘#

写《pandas 缺失值填充策略》这类数据分析文章时,我会强制保留“检查点”。因为数据分析里最危险的不是报错,而是代码顺利跑完却得到错误结论。

一个合格的 pandas 步骤,至少要能回答:输入多少行、输出多少行、哪些字段被修改、失败值有多少、是否有样本可以人工复核。缺少这些信息,代码就很难进入正式流程。

如果以后把这些文章串成系列,可以按读取、检查、清洗、变换、统计、导出排列。这样读者能从原始数据一路走到可交付结果。

最小验收样例#

验收《pandas 缺失值填充策略》时,我会手写一个三到五行的小 DataFrame:一行正常数据,一行缺失或异常数据,一行边界数据。先让示例在小表上跑通,再换成完整数据集。

小表的好处是结果可以人工计算。只要人工结果和 pandas 输出对不上,就说明代码逻辑或字段口径还没想清楚。这个过程比直接在大表上调试更可靠。

小结#

缺失值填充是业务判断,不是格式清洗。先理解缺失含义,再选择填法,并尽量保留可追溯标记。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

pandas 缺失值填充策略
https://blog.tjcheng.cn/posts/backfill/2026-05-27/pandas-missing-fill-rules/
作者
TengJinCheng
发布于
2026-05-27
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
TengJinCheng
Hello, I'm Teng.
公告
欢迎来到TengJinCheng工作铺!
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
分类
标签
站点统计
文章
157
分类
7
标签
114
总字数
109,939
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.13.4
文章许可
CC BY-NC-SA 4.0

文章目录