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

Python中的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,转载请注明出处!