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

Python使用均值填充缺失值运行代码报KeyError错误如何解决

报错原因

KeyError: 'Perkotaan' 本质是代码尝试读取DataFrame中不存在的列触发的报错,常见诱因有3个:

  • 代码混用了两个DataFrame变量 df 和 data:筛选空值时读取的是data对象的列,赋值时操作的是df对象的列,若data中没有Perkotaan字段就会触发报错
  • 列名拼写不符:比如存在大小写差异、列名前后带空格、拼写多/少字符的情况
  • 对应列已被提前删除:数据预处理过程中误删了目标字段,或者读取数据时没有加载到对应列
解决步骤
  1. 先统一DataFrame变量名,避免多对象混用,同时可以删掉冗余的==True判断(isnull()本身返回布尔值),修正后代码如下:
# 全程操作同一个df对象
df.loc[df['Perkotaan'].isnull(), 'Perkotaan'] = df['Perkotaan'].mean()
df.loc[df['Perdesaan'].isnull(), 'Perdesaan'] = df['Perdesaan'].mean()
  1. 执行代码打印当前df的所有列名,确认目标字段是否存在、列名是否匹配:
print(df.columns.tolist())

如果检查发现列名前后存在多余空格,可以先批量清理列名:

# 去除所有列名前后的空白字符
df.columns = df.columns.str.strip()
  1. 可以用更简洁的pandas内置方法完成多列均值填充,避免重复写多行逻辑:
# 一次性对指定两列用各自的均值填充缺失值
df[['Perkotaan', 'Perdesaan']] = df[['Perkotaan', 'Perdesaan']].fillna(df[['Perkotaan', 'Perdesaan']].mean())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 21:24:03