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

pd.DataFrame.eq()未达预期:艾姆斯爱荷华住房数据集空值排查异常

问题解决办法

你的问题出在对pandas string dtype缺失值的判断逻辑上:

  • pandas的string类型列中,真正的缺失值是pd.NA,不是字符串形式的'NA',你原代码用.eq('NA')是在查找值等于字符串'NA'的行,而非识别缺失值。
  • 替换空字符串为None后,None在string dtype列中会被转为pd.NA,但你依然用.eq('NA')查找,自然还是找不到。

修正后的代码

直接用.isna()来识别缺失值即可:

(data
  .select_dtypes('string')
  .isna()
  .mean(axis='rows')
  .mul(100)
  .pipe(lambda ser: ser[ser > 0])
)

额外情况处理

如果你的数据集里确实存在用字符串'NA'表示的缺失值(而非pandas原生缺失值),可以先将这类字符串转为pd.NA再统计:

# 先统一转换字符串形式的缺失值
string_cols = data.select_dtypes('string')
data[string_cols.columns] = string_cols.replace('NA', pd.NA)

# 再计算缺失率
(data
  .select_dtypes('string')
  .isna()
  .mean(axis='rows')
  .mul(100)
  .pipe(lambda ser: ser[ser > 0])
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 08:56:00