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

Pandas中如何依据另一列筛选条件填充指定列的缺失值

按车辆类型分组填充行驶里程缺失值

你需要先筛选出全新车样本计算对应行驶里程的均值,再精准匹配全新车的缺失行完成填充,注意你提供的复现示例中全新车的取值为'New',和描述中的'Brand New'文本存在差异,实际使用时替换为你数据集里的真实取值即可。


实现代码(仅填充全新车缺失值,完全匹配需求)

import pandas as pd
import numpy as np

# 加载/构造你的数据集
df = pd.DataFrame({'Car type': ['New','Used','New','New','New','Used','New','New'],
                   'Distance':[20,2222,34,np.nan,np.nan,np.nan,50,10]})

# 计算全新车组的行驶里程均值
new_car_distance_mean = df.loc[df['Car type'] == 'New', 'Distance'].mean()

# 定位所有「车辆类型为全新车、且行驶里程为缺失值」的行,用计算出的均值填充
df.loc[(df['Car type'] == 'New') & (df['Distance'].isna()), 'Distance'] = new_car_distance_mean

运行结果

填充后的数据表如下,全新车的缺失值被替换为全新车组的里程均值28.5,二手车的缺失值保持未填充状态:

Car type  Distance
0      New      20.0
1     Used    2222.0
2      New      34.0
3      New      28.5
4      New      28.5
5     Used       NaN
6      New      50.0
7      New      10.0

扩展:全分组自动填充

如果后续你需要同时给二手车的缺失值填充二手车组的里程均值,不需要逐组手动计算,直接用分组变换的写法即可一步完成:

# 按车辆类型分组,用每组自身的里程均值填充组内缺失值
df['Distance'] = df.groupby('Car type')['Distance'].transform(lambda col: col.fillna(col.mean()))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 06:24:16