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

基于Make列的众数填充Model列NaN值的实现与简化方案

按Make分组用Model众数填充缺失值解决方案

问题背景

现有数据集存在缺失值,其中Model列有286个缺失值,这些缺失值分布在21个不同的Make类别下。已通过分组计算得到每个Make对应的Model众数,需求是用对应Make的众数填充Model列的NaN值,并简化流程。


A) 用对应Make的Model众数填充NaN值

可以先将分组得到的众数转换为Make到Model众数的映射字典,再结合fillna()和map()方法完成填充:

# 先获取Make到Model众数的映射字典
make_model_mode = df.groupby('Make')['Model'].apply(lambda x: x.mode().iat[0]).to_dict()

# 填充Model列的NaN值
df['Model'] = df['Model'].fillna(df['Make'].map(make_model_mode))

如果已生成df1(各Make对应Model众数的列表),也可以直接将其转为字典使用:

make_model_mode = df1.set_index('Make')['Model'].to_dict()
df['Model'] = df['Model'].fillna(df['Make'].map(make_model_mode))

B) 合并众数计算与缺失值填充为一步操作

不需要单独生成众数列表,直接用groupby().transform()在填充时实时计算对应分组的众数,一步完成:

df['Model'] = df['Model'].fillna(
    df.groupby('Make')['Model'].transform(lambda x: x.mode().iat[0])
)

transform()会为每行返回其所属Make分组的Model众数,直接传递给fillna()即可完成缺失值填充,省去了中间变量的存储步骤。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 19:10:20