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

如何用Python实现:以15-45岁年龄组均值填充Age列缺失值

用15-45岁年龄组的均值填充Age列缺失值的正确实现

嘿,我来帮你搞定这个问题!你遇到的TypeError是因为布尔运算符的优先级坑了你——&(按位与)的优先级比>/<这类比较运算符更高,所以你的代码里train['Age'] > 15 & train['Age'] < 45会被Python先执行15 & train['Age'],这就导致了float类型数组和bool类型标量的无效比较,直接触发报错。

正确实现步骤

  1. 给每个比较条件单独加括号,准确筛选出15至45岁的有效年龄数据
  2. 计算该子集的Age均值
  3. 用这个均值填充Age列的所有缺失值

完整代码

# 筛选15到45岁的有效年龄,计算该组均值
age_group_mean = train.loc[(train['Age'] >= 15) & (train['Age'] <= 45), 'Age'].mean()

# 用计算得到的均值填充Age列的缺失值
train['Age'] = train['Age'].fillna(age_group_mean)

验证结果

你可以运行下面的代码确认缺失值已被完全填充:

print(train['Age'].isnull().value_counts())

正常输出应该是False 891(714条非缺失数据+177条缺失数据的总和),说明所有缺失值都处理完毕。

如果你的需求是严格不包含边界(即15<Age<45),只需把筛选条件改成(train['Age'] > 15) & (train['Age'] < 45)即可,按需调整就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:19:30