点赞、关注再看,养成良好习惯
Life is short, U need Python
初学Python,快来点我吧
1. 概述
首先对数据缺失的原因、类型以及处理方法做一个简单地总结,如下图所示:
2. 直接删除法
当缺失值的个数只占整体很小一部分的时候,可直接删除缺失值(行)。但是如果缺失值占比比较大,这种直接删除缺失值的处理方法就会丢失重要信息。
直接删除法处理缺失值时,需要检测样本总体中缺失值的个数。Python中统计缺失值的方法如下(下面结合具体数据集,直接上代码):
import numpy as np
import pandas as pd
data = pd.read_csv('1.csv') # 需要具体数据(公开的海藻数据集)请留言,并附上邮箱!
data.head()
null_all = data.isnull().sum() # 检测缺失值个数(方法1)
null_all
data.info() # 检测缺失值个数(方法2)
# new_data = data.dropna() # 1--删除存在缺失值的行
# new_data = data.dropna(subset=['C1','Chla']) # 2--删除指定列存在缺失值的行
new_data = data.dropna(thresh=15) # 3--删除行属性值不足k个的行(即删除缺失元素比较多的行-->n-15)
new_data.info()
3. 前填充/后填充
import numpy as np
import pandas as pd
data = pd.read_csv('1.csv')
data[50:60] # 展示缺失值情况
data = data.fillna(method='ffill') # ffill---前填充;bfill--后填充
data[50:60]
4. 均值、众数、中位数填充
通常可以根据样本之间的相似性(中心趋势)填补缺失值,通常使用能代表变量中心趋势的值进行填补,代表变量中心趋势的指标包括 平均值(mean)、中位数(median)、众数(mode) 等,那么我们采用哪些指标来填补缺失值呢?