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

如何基于其他列条件替换DataFrame中的空值:用对应教育水平平均收入填充

用对应教育水平的平均收入填充Income缺失值

你已经算出了各教育水平的平均收入,有两种简单的方法可以完成缺失值替换:

方法一:用预先计算好的均值映射填充

直接利用你得到的income_edu_based,通过map匹配教育水平对应的均值,再用fillna替换空值:

df['Income'] = df['Income'].fillna(df['Education'].map(income_edu_based))

原理:df['Education'].map(income_edu_based)会为每一行生成对应教育水平的平均收入,fillna会用这个值替换该行Income的缺失值。

方法二:一步到位计算并填充(无需提前算均值)

如果不需要保留预先计算的均值,也可以直接用groupby.transform完成分组计算和填充:

df['Income'] = df.groupby('Education')['Income'].transform(lambda x: x.fillna(x.mean().round(2)))

这个方法会自动按教育水平分组,计算每组的平均收入(保留两位小数),并填充到组内的缺失值上。

验证填充效果

执行完填充后,可以用下面的代码确认Income列是否还有缺失值:

print(df['Income'].isna().sum())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:01:07