很多数据不可避免的会遗失掉,或者采集的时候采集对象不愿意透露,这就造成了很多NaN(Not a Number)的出现。这些NaN会造成大部分模型运行出错,所以对NaN的处理很有必要。

解决方法:

1、简单粗暴地去掉

1)有如下dataframe,先用df.isnull().sum()检查下哪一列有多少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())

输出:

2)将含有NaN的列(columns)去掉:data_without_NaN =df.dropna(axis=1)

print (data_without_NaN)

输出:

2、遗失值插补法

很多时候直接删掉列会损失很多有价值的数据,不利于模型的训练。

所以可以考虑将NaN替换成某些数,显然不能随随便便替换,有人喜欢替换成0,往往会画蛇添足。

譬如调查工资收入与学历高低的关系,有的人不想透露工资水平,但如果给这些NaN设置为0很显然会失真。所以Python有个Imputation(插补)的方法。代码如下: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知识,请关注:云海天python教程网!!

python nan变成0_python nan怎么解决相关推荐

  1. python nan_python [吐槽]关于nan类型时遇到的问题

    今天在用写一段求和的代码时候,发现最后返回的是nan的结果,这段循环求和代码依次调用了三个函数,于是依次打印这三个函数的返回值,发现其中一个函数的返回值为nan,原来是因为这段函数里面没有相似的用户, ...

  2. matlab 判断是否是nan,关于Python中Inf与Nan的判断问题详解

    python中运行错误,关于聚类算法出现的nan值问题处理的数据有10个属性,使用kmeans聚类算法出现了nan值的错误,请问怎么说明你的样本数据中有nan值,通常是因为原始数据中包含空字符串或No ...

  3. python pandas DataFrame 替换 NaN 值 和 删除 NaN 所在的行。

    python pandas DataFrame 替换 NaN 值 和 删除 NaN 所在的行. import pandas as pd import numpy as np df1 = pd.Data ...

  4. python pandas DataFrame 查找NaN所在的位置

    python pandas DataFrame 查找 NaN 所在的位置 import pandas as pd import numpy as np df1 = pd.DataFrame({'日期' ...

  5. python判断nan格式_关于Python中Inf与Nan的判断问题详解

    大家都知道 在Python 中可以用如下方式表示正负无穷: float("inf") # 正无穷 float("-inf") # 负无穷 利用 inf(infi ...

  6. 【python】如何判断nan

    以为python的nan是专有的类型,但是JS.C++都有这个类型的,怪写的代码bug太少,没遇到 None 和 nan type(None)-----------Nonetype type(Nan) ...

  7. 关于Python中Inf与Nan的判断问题详解

    大家都知道 在Python 中可以用如下方式表示正负无穷: 1 2 float("inf") # 正无穷 float("-inf") # 负无穷 利用 inf( ...

  8. python将姓王的都改成老王_Python 实现将numpy中的nan和inf,nan替换成对应的均值

    inf:infinity;正无穷 numpy中的nan和inf都是float类型 t!=t 返回bool类型的数组(矩阵) np.count_nonzero() 返回的是数组中的非0元素个数:true ...

  9. dos系统不能安装python模块,无法使用pip命令安装python第三方库的原因及解决方法...

    再dos中无法使用pip,命令主要是没有发现这个命令.我们先找到这个命令的位置,一般是在python里面的scripts文件夹里面.我们可以把dos切换到对应的文件夹,再使用pip命令就可以了. 如果 ...

  10. python跳出双层for循环的解决方法

    转载 python跳出双层for循环的解决方法 一.问题描述 在二维数组的遍历中,我们经常使用双层for循环.在某些时候,我们并不需要遍历整个二维数组.当条件满足时就应该终止for循环.但是,直接在内 ...

最新文章

  1. Datawhale组队学习 Task01:数组(1天)
  2. 浅谈错排公式的推导及应用
  3. 解决function id unknown issue
  4. 安装DNN时,数据库连接字符串的设置
  5. C#内建接口:IEnumerable
  6. Gaze Estimation笔记——data normalization
  7. java -jar命令引导启动Springboot项目的那点事
  8. 详解c++[指针的指针] 和 [指针的引用]
  9. navigationBar模块未绑定
  10. 什么?你的私钥泄漏了?
  11. 电脑桌面透明云便签怎么设置便签皮肤透明度?
  12. 新一代至强CPU加速GBase 8a MPP,GBase GCDW云数据仓库助力行业迎接数字化转型新挑战
  13. 模糊数学Fuzzy Set第2讲——Fuzzy Logic Fuzzy Reasoning
  14. 本题要求实现一个计算m~n(m<n)之间所有整数的和的简单函数
  15. python 字符串方法总结
  16. 二十四节气之小暑养生篇
  17. typeof与keyof
  18. 使用JDK自带的工具keytool生成证书
  19. apk签名机制与SHA1算法
  20. 怎么将mp4改成mp3格式?

热门文章

  1. 记一次CAD二次开发 (C#) -导出
  2. English--动名词
  3. 官方rom提取原签名工具_从安卓官方版ROM中提取你喜欢的软件(单独安装包)
  4. 瞬间移动(c(n, m))
  5. java判断闰年条件
  6. 端口和网络安全的关系
  7. c语言写街机,19年了!街机模拟器MAME正式成为开源软件
  8. 基因重组-冲刺日志(第一天)
  9. 如何使用CSS绘制奥运五环标志
  10. 龙芯芯片CPU的产品路线说明