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

Pandas替换DataFrame列后源数据无空值却出现空值的原因排查

空值产生原因

pandas 的 DataFrame 赋值操作默认会基于行索引对齐匹配,而非直接按行的物理位置顺序赋值。

你出现的11个空缺(7032-7021=11)和电信流失数据集的典型预处理场景完全匹配:

  • 原始电信数据集总共有7043行,其中11行TotalCharges为空,删除这11行后得到7032行有效数据
  • 如果你删除空值后没有执行reset_index(drop=True)重置索引,那么生成的num_telecom的行索引会缺失被删除的11个索引值,保持和删除后的子集索引一致
  • 赋值给仍保留原始连续索引(0~7031)的telecom时,num_telecom不存在的11个索引位置就会被自动填充为NaN

验证方法

执行以下代码即可确认索引不匹配的问题:

print(telecom.index.equals(num_telecom.index))

如果输出为False即可证实是索引对齐导致的空值。

解决方案

两种方案任选其一即可:

  • 赋值时取NumPy数组绕过索引对齐:
    telecom[numVars] = num_telecom[numVars].values
    
  • 重置num_telecom的索引后再赋值:
    num_telecom = num_telecom.reset_index(drop=True)
    telecom[numVars] = num_telecom[numVars]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:45:05