数据不完整在数据分析的过程中很常见。
pandas使用浮点值NaN表示浮点和非浮点数组里的缺失数据。
pandas使用isnull()和notnull()函数来判断缺失情况。
对于缺失数据一般处理方法为滤掉或者填充。
滤除缺失数据
对于一个Series,dropna()函数返回一个包含非空数据和索引值的Series,例如:
![](https://i-blog.csdnimg.cn/blog_migrate/55ccd6ad8e950b4685bf542ca28cd1c6.png)
对于DataFrame,dropna()函数同样会丢掉所有含有空元素的数据,例如:
![](https://i-blog.csdnimg.cn/blog_migrate/cd55e61dc653ef63742c49e0f5410fef.png)
但是可以指定how='all',这表示只有行里的数据全部为空时才丢弃,例如:
![](https://i-blog.csdnimg.cn/blog_migrate/72db3f5cabf299a12e5ba418d68304b9.png)
如果想以同样的方式按列丢弃,可以传入axis=1,例如:
![](https://i-blog.csdnimg.cn/blog_migrate/6b282655bc09419cd7f08cd6b1c48af5.png)
填充缺失数据
如果不想丢掉缺失的数据而是想用默认值填充这些空洞,可以使用fillna()函数:
![](https://i-blog.csdnimg.cn/blog_migrate/dfecc09315bbf7c5f3780d62f74fadd3.png)
如果不想只以某个标量填充,可以传入一个字典,对不同的列填充不同的值:
![](https://i-blog.csdnimg.cn/blog_migrate/61b82b1c727967766c1dd97c4cd77308.png)