You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas DataFrame列替换NaN为0后调用median()返回0的问题排查

解答

你的代码语法上没有错误,但用0填充NaN的操作直接干扰了中位数的计算结果——当0的数量足够多,占据了数据排序后的中间位置时,中位数自然会变成0。

中位数的核心逻辑是将数据从小到大排序后,取中间位置的数值:

  • 数据量为奇数时,取排序后正中间的数值
  • 数据量为偶数时,取中间两个数值的平均值

如果原始非NaN的有效数据数量远少于4000,那么替换后大量的0会在排序后占据中间位置,最终导致中位数为0。

你用quantile()验证的方法非常实用,通过查看0.5分位数(即中位数)的数值,能直接确认结果的合理性。如果这个结果不符合你的分析需求,建议换用其他NaN填充策略,比如使用该列填充前的中位数、均值,或者符合业务逻辑的特定数值,而不是直接用0填充。


内容的提问来源于stack exchange,提问作者andreaq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 04:05:02