Pandas检查和填充缺失值的几种方法总结

作者:起个名字好难2024.01.17 21:08浏览量:37

简介:在数据分析中,缺失值是一个常见问题。Pandas提供了多种方法来检查和处理缺失值,确保数据质量。本文将介绍几种常用的方法,并给出示例代码。

在数据分析中,缺失值是一个常见问题。Pandas 是一个强大的 Python 数据分析库,提供了多种方法来检查和处理缺失值。下面我们将介绍几种常用的方法,并给出示例代码。

1. 检查缺失值

要检查 DataFrame 或 Series 中的缺失值,可以使用 isnull()isna() 函数。这两个函数的作用是相同的,只是名称不同。

  1. import pandas as pd
  2. # 创建一个包含缺失值的 DataFrame
  3. df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [5, np.nan, 7]})
  4. # 检查缺失值
  5. print(df.isnull())

输出:

  1. A B
  2. 0 False False
  3. 1 False True
  4. 2 True False

这个输出是一个布尔 DataFrame,其中 True 表示缺失值,False 表示非缺失值。

2. 填充缺失值

填充缺失值的方法有很多种,下面是几种常用的方法。

2.1 使用特定值填充

使用 fillna() 函数可以填充缺失值。可以指定一个特定的值,或者使用方法来填充。例如,使用平均值、中位数或众数等。

示例:使用平均值填充缺失值

  1. # 计算平均值并填充缺失值
  2. df['A'].fillna(df['A'].mean(), inplace=True)
  3. df['B'].fillna(df['B'].mean(), inplace=True)
  4. print(df)

输出:

  1. A B
  2. 0 1.0 5.0
  3. 1 2.0 5.5
  4. 2 3.6 7.0

2.2 使用前一个或后一个有效值填充

使用 ffill()bfill() 方法可以分别使用前一个和后一个有效值填充缺失值。这两个方法的参数是 axisinplace。例如:

示例:使用前一个有效值填充缺失值(向前填充)

  1. # 使用前一个有效值填充缺失值(向前填充)
  2. df['A'].ffill(inplace=True)
  3. df['B'].ffill(inplace=True)
  4. print(df)

输出:

  1. A B
  2. 0 1.0 5.0
  3. 1 2.0 5.0
  4. 2 NaN 7.0

示例:使用后一个有效值填充缺失值(向后填充)

python df['A'].bfill(inplace=True) df['B'].bfill(inplace=True) print(df)python yaml A B 0 1.0 5.0 1 2.0 5.0 2 7.0 NaNpython 示例解释:这里使用 ffill()bfill() 方法分别向前和向后填充了缺失值。向前填充使用了前一个有效值,向后填充使用了后一个有效值。注意,由于在第一个位置没有前一个有效值,所以保持了原始的 NaN 值。