Python缺失值处理方法
前言:
前面python重复值处理得方法我们讲了重复值是怎么处理的,今天就来说说缺失值。缺失值主要分为机械原因和人为原因。机械原因就是存储器坏了,机器故障等等原因导致某段时间未能收集到数据。人为原因的情况种类就更多了,如刻意隐瞒等等。
先构建一个含有缺失值的DataFrame,如下:
import pandas as pd
import numpy as np
data = pd.DataFrame([[1,np.nan,3],[np.nan,5,np.nan]],columns = ['a','b','c'])
print(data)
看出来了吗?np.nan就是NAN值,空值的意思。
在numpy中有一个函数可以用来查看空值,不对,是两个,isnull()和isna()这两函数。
我们分别来试试它们的效果:
import pandas as pd
import numpy as np
data = pd.DataFrame([[1,np.nan,3],[np.nan,5,np.nan]],columns = ['a','b','c'])
data.isnull()
data.isna()
可以看出,这两函数的作用就是判断数据是不是空值,如果是,就返回true,不是就是false。
通常,对空值的处理有两种方法,一种就是把空值删除,另外一种就是把它填上,我们先说第一种,删除空值,我们可以dropna()这一函数来把空值删除。要注意,它会把含有空值的整行都删掉。例如:
import pandas as pd
import numpy as np
data = pd.DataFrame([[1,np.nan,3],[np.nan,5,np.nan]],columns = ['a','b','c'])
data.dropna()
上面的例子用了drop函数后,啥都没啦!
我们可以设置当每行空值多余2个时再删除(低于2个保留),这时候要用到dropna()的参数thresh。
补充空值的话有挺多的方法,有用均值补充,中位数补充等,我们要用到fillna()这一函数。例如,我们用均值来填充上文中的data,
代码如下:
import pandas as pd
import numpy as np
data = pd.DataFrame([[1,np.nan,3],[np.nan,5,np.nan]],columns = ['a','b','c'])
data.fillna(data.mean())
代码运行的结果如下,可以看到空值都被对应列的均值所填充。
到此这篇关于Python缺失值处理方法的文章就介绍到这了,更多相关Python 缺失值 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341