处理缺失值(I)

Python 中的机器学习特征工程

Robert O'Callaghan

Director of Data Science, Ordergroove

整行删除(Listwise deletion)

      SurveyDate      ConvertedSalary     Hobby ... \
0  2/28/18 20:20                  NaN       Yes ...
1  6/28/18 13:26              70841.0       Yes ...
2    6/6/18 3:37                  NaN        No ...
3    5/9/18 1:06              21426.0       Yes ...
4  4/12/18 22:41              41671.0       Yes ...
Python 中的机器学习特征工程

在 Python 中进行整行删除

# 删除至少含一个缺失值的行
df.dropna(how='any')
Python 中的机器学习特征工程

在 Python 中进行整行删除

# 删除在特定列中有缺失的行
df.dropna(subset=['VersionControl'])
Python 中的机器学习特征工程

删除法的问题

  • 会删除有效数据点
  • 依赖随机性
  • 降低信息量
Python 中的机器学习特征工程

用字符串替换

# 用给定字符串替换特定列中的缺失值
df['VersionControl'].fillna(
    value='None Given', inplace=True
)
Python 中的机器学习特征工程

记录缺失值

# 记录哪些值不缺失
df['SalaryGiven'] = df['ConvertedSalary'].notnull()
# 删除特定列
df.drop(columns=['ConvertedSalary'])
Python 中的机器学习特征工程

练习时间

Python 中的机器学习特征工程

Preparing Video For Download...