人生苦短,快学Python!
在上一篇文章中,我们分享了Python中查询缺失值的4种方法。查找到了缺失值,下一步便是对这些缺失值进行处理,今天同样会分享多个方法!
第一种处理缺失值的方法就是删除,dropna()方法的参数如下所示。
df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
参数说明:
axis=0(默认)表示操作行,axis=1表示操作列。在交互式环境中输入如下命令:
df.dropna(axis=0)
输出:

how参数中,any表示一行/列有任意元素为空时即丢弃,all表示一行/列所有值都为空时才丢弃。在上一行代码中,未设置how参数,则默认为any。
df.dropna(axis=0,how='all')
输出:

thresh参数中,比如thresh=3,如果该行中非缺失值的数量小于3,将删除该行。
df.dropna(axis=0, how="any", thresh=3)
输出:

只考虑"C列", "D列",在交互式环境中输入如下命令:
df.dropna(axis=0, how="any", subset=["C列", "D列"])
输出:

除了使用dropna()方法直接粗暴地删除缺失值,还可以使用fillna()填充缺失值。其参数如下所示。
df.fillna(value=None, method=None, axis=None, inplace=False, limit=None)
参数说明:
在交互式环境中输入如下命令:
df.fillna(value=0)
输出:

在参数method中,ffill(或pad)代表用缺失值的前一个值填充;backfill(或bfill)代表用缺失值的后一个值填充。由于axis默认为0,所以这里的前后值即为上/下一行的值,如果想要使用左右值来填充,则设置axis=1。
df.fillna(axis=0, method="ffill")
输出:

参数limit表示填充执行的次数,这里我们赋值为1,则代表仅按行填充1次。
df.fillna(axis=0, method="ffill", limit=1)
输出:

此外,还有一些不太常用的方法。比如除了通过fillna方法来填充缺失值外,还可以通过
interpolate方法来填充。默认情况下使用线性差值,可以设置method参数来改变方式。 也可以通过字符串的replace()方法来替换缺失值。本来这部分想作为第三种方法介绍,写完发现有点“听君一席话,好似庄周带净化”,干脆作为小贴士吧。
人生苦短,快学Python!
今天我们分享了Python中处理缺失值的2种方法,觉得不错的同学给右下角点个在看吧,建议搭配前文Python中查询缺失值的4种方法一起阅读。