在python之中使用pandas模块去读取数据的时候可能会出现某些位置的数据为空也就是为NaN值的情况,那么空的数据是需要去进行处理的,否则会造成数据完整性的缺失和模型的出错。那么下面来介绍一个处理NaN值的方法,一起看看吧。
(1)最简单的处理方式就是直接去将有NaN值的那一列给去掉,示例如如下:
# 先查询到哪一列有多少个NaN值 import pandas as pd df = pd.DataFrame({'a':[None,1,2,3],'b':[4,None,None,6],'c':[1,2,1,2],'d':[7,7,9,2]}) print (df) print (df.isnull().sum()) # 删除有Nan值的列 data_without_NaN =df.dropna(axis=1) print (data_without_NaN)
这种处理NaN值的方式虽然简单,但是却会丢失很多可能是有价值的数据。但是它又保证了数据的完整性,不会对数据的处理和模型训练造成不好的影响,但是这个方法还是要根据自己的需求去斟酌使用。
(2)那么还有一种方法叫做遗失值插补法,就是通过Imputation方法来得出这个数据表之中NaN值位置处的近似值,一般是取一个平均数或者是中位数。虽然这个方法无法完全的保证数据是正确的,但是也在一定的程度上通过现有数据的计算得出了比较合理的结果,代码如下:
from sklearn.preprocessing import Imputer my_imputer = Imputer() data_imputed = my_imputer.fit_transform(df) print (type(data_imputed)) # array转换成df df_data_imputed = pd.DataFrame(data_imputed,columns=df.columns) print (df_data_imputed)
以上就是关于“Python中的NaN要怎么去解决?这几个方法都很好用”的全部内容了,想要了解更多python的实用知识和代码示例可以持续关注这个频道,每次更新都会有很多新的知识技术分享给大家。
更多python相关文章请访问分类:python
【版权声明】本文图文出自大盘站@dapan.cc,转载请注明出处!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。