问答 · ANSWER

如何处理缺失值?

直接回答
处理缺失值主要分为识别与处理两步。使用isnull()和any()方法识别缺失值位置。处理策略包括直接丢弃缺失值行(dropna)或用固定值、前向/后向填充(fillna/ffill/bfill)等方法填补。

关键要点

  • 使用isnull()方法检测数据中的缺失值,通常由NaN表示。
  • 结合any()方法可以快速定位存在缺失值的列(axis=0)或行(axis=1)。
  • 处理缺失值的两种核心方式是丢弃(dropna)和填充(fillna)。
  • 丢弃操作可通过subset参数指定只关注特定列的缺失情况。
  • 填充可使用固定值,或对有序数据使用前向填充(ffill)与后向填充(bfill)。
  • 使用前向或后向填充前,数据需要是有序的,例如按时间排序。

怎么选 / 怎么做

1. 识别缺失值:使用df.isnull()检测缺失值,结合.any(axis=0)查看哪些列存在缺失,或.any(axis=1)查看哪些行存在缺失。
2. 选择处理策略:根据数据情况选择丢弃或填充。
3. 执行丢弃:使用df.dropna()丢弃任何列包含缺失值的行,或用subset参数指定只丢弃特定列有缺失的行。
4. 执行填充:使用df.fillna(固定值)进行固定值填充;或对排序后的数据使用df.ffill()(前向填充)和df.bfill()(后向填充)。

常见问题

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

使用 df.isnull().any(),返回布尔序列指示各列是否有缺失。

dropna() 会删除所有有缺失值的行吗?

默认删除任何列包含缺失值的行,可用 subset 指定列。

什么是前向填充(ffill)?

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

深入学

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