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

使用fillna()填充单个缺失值报numpy.float64无fillna属性错误

报错原因

fillna()是pandas库中Series、DataFrame两类数据结构的专属方法,只能对这两类对象调用。
当你使用gaming.loc[16448, 'year_of_release']取值时,因为同时传入了单个行标签和单个列名,loc会直接返回对应单元格的标量值,类型为numpy.float64,不属于pandas的Series或DataFrame,自然不存在fillna属性,因此触发AttributeError。

修正方法

根据实际需求选择对应写法即可:

  • 直接赋值(写法最简洁,适用于明确要将该位置值设为2012.0的场景,无论原值是否为缺失值都会覆盖)
gaming.loc[16448, 'year_of_release'] = 2012.0
  • 保留fillna的空值判断逻辑(仅当该位置值为NaN时才替换,不修改非空原值):将行索引用列表包裹传入,让loc返回长度为1的Series对象,即可正常调用fillna
gaming.loc[[16448], 'year_of_release'].fillna(2012.0, inplace=True)
  • 条件掩码赋值(最稳妥的写法,规避链式索引的潜在风险,可直接扩展到多行列的批量填充场景)
# 构造筛选条件:索引为16448 且 发行年份为空
fill_mask = (gaming.index == 16448) & (gaming['year_of_release'].isna())
gaming.loc[fill_mask, 'year_of_release'] = 2012.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:18:15