Pandas 缺失值的处理

什么是缺失值?

就是数据缺少的数据,在 pandas 是 nan 标记,但是实际数据文件中可能会用另外一种方式标记,比如:问号。

对于缺失值,我们要进行如下步骤处理:

  1. 如何判断缺失值?
  2. 对于缺失值如何处理?
    1. 对于 nan 标记缺失值处理
      1. 填充
      2. 删除
    2. 对于非 nan 标记缺失值处理
      1. 先将非 NaN 替换 NaN
import pandas as pd

data = pd.read_csv("./data/movie.csv")

# 1. 判断缺失值
data.describe()           #  初步是否有缺失值,但是不准确
pd.notnull(data)          #  如果值不是 nan, 则对应位置的值为 True
np.all(movie.notnull())   #  False 表示有缺失值
np.any(movie.isnull())    #  True 表示有缺失值

# 2. 处理缺失值:缺失值使用 nan 标记
for column in data.columns:
    # 1. 先判断每一列是否有缺失值
    if not np.all(data[column].notnull()):
        # 2. 使用均值来填充缺失值
        mean_value = data[column].mean()
        # 3. 将均值填充 NaN
        data[column].fillna(mean_value, inplace=True)  # inplace 就地


# 3. 处理缺失值:缺失值使用非 nan 标记
# 3.1 先将缺失值标记符号转换为 pandas 的 nan 标记
# 3.2 再进行 dropna 或者 fillna 处理
data = pd.read_csv("./data/breast-cancer-wisconsin.data")
# 判断 data 中是否存在 ? 数据
np.any(data.values == "?")
# 将 ? 替换为 nan 标记
data = data.replace(to_replace='?', value=np.nan)
# 删除包含 nan 的行数据
data = data.dropna()
未经允许不得转载:一亩三分地 » Pandas 缺失值的处理
评论 (0)

6 + 1 =