数据清洗

数据类型转换

  • 查看数据类型
    data.dtypes
  • 将不同的数据类型进行转换
    data['id'].astype(type_name) # str, float, int
    pd.to_datetime(data['date'], format='%Y-%m-%d')

冗余数据处理

  • 判断是否存在冗余
    data.duplicated().any() # 当数据行出现重复时,返回True
  • 删除冗余数据
    data.drop_duplicates() # 删除冗余数据,inplace=True可以将原数据进行替换
    可以指定subset=[feature],表示当指定的特征重复时就认为数据是重复的

缺失值处理

  • 判断是否存在缺失值
    data.isnull()
  • 删除法
    缺失行的比例非常低(删除行)
    data.drop(labels=data.index[data['id'].isnull()], axis=0)
    缺失值所对应的特征比例非常高(删除列)
    data.drop(labels='id', axis=1, inplace=True)
  • 替换法
    直接利用缺失特征的均值、中位数或众数对缺失值进行替换,速度快,但容易产生有偏估计,导致缺失值替换的准确性下降。
    data.fillna(value={'id1':data['id1'].mode()[0], 'id2':data['id2'].mean()}, inplace=True) # 众数、平均数
  • 插补法
    利用监督学习对缺失值进行预测,准确性高,慢。

异常值处理

  • 识别
    图形法和建模法
  • 箱线图
    异常点:变量的数据值大于箱线图的上须或者小于箱线图的下须
异常情况 判断方法
异常点 x>Q3+1.5(Q3-Q1)或者x
极端异常点 x>Q3+3(Q3-Q1)或者x
  • 正态分布图
异常情况 判断方法
异常点 均值的2标准差邻域之外
极端异常点 均值的3标准差邻域之外

你可能感兴趣的:(数据清洗)