• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python nan怎么解决

python 搞java代码 3年前 (2022-05-21) 36次浏览 已收录 0个评论

很多数据不可避免的会遗失掉,或者采集的时候采集对象不愿意透露,这就造成了很多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())

www#gaodaima.com来源gaodai#ma#com搞*!代#%^码$网搞代码

输出:

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知识,请关注:搞代码网!!

来源:搞代码网:原文地址:https://www.gaodaima.com


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python nan怎么解决

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址