问答 · ANSWER

pandas 怎么处理缺失值(NaN)?

直接回答
使用isnull()识别缺失值,通过dropna()丢弃或fillna()填充处理,针对有序数据可采用前向或后向填充。

关键要点

  • 使用 isnull() 检测缺失值,any() 方法可快速定位存在缺失值的行或列。
  • 处理缺失值的两种核心策略是直接丢弃(dropna)和填充(fillna)。
  • dropna() 默认丢弃任何列包含缺失值的整行,可通过 subset 参数指定列。
  • fillna() 可用固定值填充,对有序数据常用前向填充(ffill)或后向填充(bfill)。
  • 使用前向或后向填充前,数据必须是有序的(例如按时间排序)。

怎么选 / 怎么做

1. 识别缺失值:使用 df.isnull() 检测,结合 df.isnull().any() 或 df.isnull().any(axis=1) 定位。
2. 选择处理策略:
- 丢弃:使用 df.dropna() 丢弃含缺失值的行,或用 subset 参数指定列。
- 填充:使用 df.fillna(value) 用固定值填充。
- 智能填充:对有序数据,使用 df.ffill()(前向填充)或 df.bfill()(后向填充)。

常见问题

怎么快速找到哪些列有缺失值?

用 df.isnull().any() 检查,返回 True 的列即有缺失。

dropna() 会删除所有有 NaN 的行吗?

默认会。可用 subset 指定只检查某些列。

什么是前向填充(ffill)?

用缺失值前面的有效值进行填充,数据需先排序。

深入学

小象教研组整理 · 内容来自课程讲义与企业内训素材,仅供学习参考。