数据清洗之如何处理缺失值

Kaggle: Data Cleaning Challenge: Handling missing values

导入库不用多解释了吧

import pandas as pd
import numpy as np
data = pd.read_csv('./data.csv')

一、了解数据状况

  1. 先看看数据长啥样(取样)
data.sample(5)
  1. 看看数据中是否包含缺失值
data.isnull().sum() //统计每列缺失值的总数
  1. 缺失值的占比决定了我们使用什么方式去处理它们,所以接下来需要计算一下占比
percent = data.isnull().sum().sum()/np.product(data.shape)

二、找到数据缺失的原因

  1. 确实不存在的数据:对此我们需要仔细阅读字段说明的文档(比方说有的字段为空时是有特定含义的)
  2. 存在却没有被记录的数据:对此我们需要重点去探索这类数据与其他行和列数据的关系

缺失的原因非1即2,判断后根据对应的方法找出规律

三、处理缺失的数据

  1. 移除包含缺失值的列
data.dropna(axis=1) 
  1. 自动填充缺失数据
data.fillna(0)  //直接填充0
data.fillna(method="bfill",axis=0).fillna(0) //优先填充后一行的数据,其次是填充0

关于其他的处理方法,笔者没有过多说明。
小杨在网上看到一篇文章专门讲处理的方法,在此记录《数据分析中的缺失值处理》

你可能感兴趣的:(数据清洗之如何处理缺失值)