首页 > 技术文章 > pandas-缺失值处理

wangshx666 2020-05-10 11:05 原文


# 缺失值是指数据集中的某些观测存在遗漏的指标值,缺失值的存在同样会影响到数据分析和挖掘的结果。
# 可以采三种方法处置:删除法,替换法和插补法。

# 1.删除法使用情况:当确实的观测比例非常低是,如5%以内,可以直接删除这些缺失的变量。
#
# 2.替换法:用某种直接替换缺失值,例如,对连续变量而言,可以使用均值或中位数替换,对于离散型变量,可以使用众数替换。
#
# 3.插补法:是指根据其他非确实的变量或观测来预测缺失值,常用的插补法有回归插补法,K近邻法,拉格朗日插补法等。

# 删除缺失值
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
'''
函数作用:删除含有空值的行或列
axis:维度,axis=0表示index行,axis=1表示columns列,默认为0
how:"all"表示这一行或列中的元素全部缺失(为nan)才删除这一行或列,"any"表示这一行或列中只要有元素缺失,就删除这一行或列
thresh:一行或一列中至少出现了thresh个才删除。
subset:在某些列的子集中选择出现了缺失值的列删除,不在子集中的含有缺失值得列或行不会删除(有axis决定是行还是列)
inplace:刷选过缺失值得新数据是存为副本还是直接在原数据上进行修改。
'''

# 填充缺失值
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
'''
函数作用:填充缺失值
value:需要用什么值去填充缺失值
axis:确定填充维度,从行开始或是从列开始
method:ffill:用缺失值前面的一个值代替缺失值,如果axis =1,那么就是横向的前面的值替换后面的缺失值,如果axis=0,那么则是上面的值替换下面的缺失值。backfill/bfill,缺失值后面的一个值代替前面的缺失值。注意这个参数不能与value同时出现
limit:确定填充的个数,如果limit=2,则只填充两个缺失值。
'''

# 判断缺失值
DataFrame.isna()
DataFrame.notna()

推荐阅读