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

如何用第二个DataFrame的对应类别均值替换首个DataFrame中的NaN空值

现有代码问题分析
  • 缩进错误:Python对代码缩进有严格要求,你编写的if判断语句、内层for循环都没有正确缩进,运行时会直接触发语法错误。
  • 赋值逻辑错误:最后一行你使用了相等判断运算符==,而非赋值运算符=,就算前面逻辑运行正常,也不会真的修改big_mart中的缺失值。
  • 运行效率低下:两层for循环遍历的方式完全没有用到pandas的矢量化运算优势,数据量稍大时运行速度会非常慢。
正确实现方案

不需要写循环,用pandas内置的映射+填充接口就可以高效完成需求:

  1. 先将存储类别均值的DataFrame转为Item_Type到对应均值的映射字典:
type_mean_map = item_type_mean.set_index('Item_Type')['mean'].to_dict()
  1. 对Item_Weight列的缺失值做针对性填充:
big_mart['Item_Weight'] = big_mart['Item_Weight'].fillna(big_mart['Item_Type'].map(type_mean_map))

运行后即可看到你示例中Item_Type为Soft Drinks的行,Item_Weight的缺失值会被填充为8.7,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:18:04