Python中的NaN要怎么去解决?这几个方法都很好用

在python之中使用pandas模块去读取数据的时候可能会出现某些位置的数据为空也就是为NaN值的情况,那么空的数据是需要去进行处理的,否则会造成数据完整性的缺失和模型的出错 。那么下面来介绍一个处理NaN值的方法,一起看看吧 。

Python中的NaN要怎么去解决?这几个方法都很好用

文章插图
(1)最简单的处理方式就是直接去将有NaN值的那一列给去掉,示例如如下:
# 先查询到哪一列有多少个NaN值import pandas as pddf = 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 Imputermy_imputer = Imputer()data_imputed = my_imputer.fit_transform(df)print (type(data_imputed))# array转换成dfdf_data_imputed = pd.DataFrame(data_imputed,columns=df.columns)print (df_data_imputed)【Python中的NaN要怎么去解决?这几个方法都很好用】以上就是关于“Python中的NaN要怎么去解决?这几个方法都很好用”的全部内容了,想要了解更多python的实用知识和代码示例可以持续关注这个频道,每次更新都会有很多新的知识技术分享给大家 。

    推荐阅读