如何用Python Pandas根据车型填充Engine_model列的缺失值?
按车型填充Pandas数据集中缺失的引擎型号
方法一:构建映射字典(高效通用)
先基于已有完整数据创建车型-引擎型号的映射关系,再批量填充缺失值:
# 1. 构建映射字典:保留有完整引擎型号的车型数据,去重后生成映射 car_engine_map = data.dropna(subset=['Engine_Model'])\ .drop_duplicates('Car_model')\ .set_index('Car_model')['Engine_Model'].to_dict() # 2. 用映射字典填充缺失值 data['Engine_Model'] = data['Engine_Model'].fillna(data['Car_model'].map(car_engine_map))
方法二:GroupBy分组填充(更简洁)
利用groupby按车型分组,每组内用第一个非空的引擎型号填充缺失值:
data['Engine_Model'] = data.groupby('Car_model')['Engine_Model']\ .transform(lambda x: x.fillna(x.dropna().iloc[0]))
方法三:基于你已获取的缺失变量处理
如果你已经拿到了缺失值的索引和对应车型,可以直接遍历填充:
# 遍历每个缺失项,匹配车型对应的引擎型号 for idx, car_model in zip(Engine_model_missing_indices, Car_model_missing): # 获取该车型对应的非空引擎型号 matched_engine = data.loc[data['Car_model'] == car_model, 'Engine_Model'].dropna().iloc[0] # 填充当前缺失值 data.loc[idx, 'Engine_Model'] = matched_engine
注意:确保每个车型至少有一行包含非空的引擎型号,否则上述方法会无法填充对应缺失值。
内容的提问来源于stack exchange,提问作者ljc
相关产品推荐
相关产品推荐

