温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

pandas中NaN缺失值的解决方法

发布时间:2022-02-25 14:52:11 来源:亿速云 阅读:228 作者:小新 栏目:开发技术

这篇文章主要介绍了pandas中NaN缺失值的解决方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

本文主要介绍了pandas中NaN缺失值的处理方法,主要有两种方法,具体如下:

import pandas as pd

缺失值处理

两种方法:

  • 删除含有缺失值的样本

  • 替换/插补

处理缺失值为NaN

先判断数据中是否存在NaN,通过下面两个方法中任意一个

pd.isnull(dataframe) # dataframe为数据 如果数据中存在NaN返回True,如果没有就返回False pd.notnull(dataframe) 该方法与isnull相反 any()  和 all() """ pd.isnull(dataframe).any() 判断哪一个字段中存在缺失值没有就返回False pd.notnull(dataframe).all() 判断哪一个字段中存在缺失值没有就返回True """

使用numpy也可以进行判断

import numpy as np np.any(pd.isnull(dataframe)) # 如果返回True,说明数据中存在缺失值 np.all(pd.notnull(dataframe)) # 如果返回False, 说明数据中存在缺失值

然后进行数据处理

方式一: 删除空值行

dataframe.dropna(inplace=False) """ dropna() 是删除空值数据的方法, 默认将只要含有NaN的整行数据删除,  如果想要删除整行都是空值的数据需要添加how='all'参数 默认是删除整行, 如果对列做删除操作, 需要添加axis参数,  axis=1表示删除列, axis=0表示删除行 inplace: 是否在当前的dataframe中执行此操作, True表示在原来的基础上修改, False表示返回一个新的值, 不修改原有数据 """

方式二: 替换/插补

dataframe.fillna('替换的值value',inplace=False) ''' 把替换NaN的值传入到fillna()中 '''

缺失值NaN有默认标记的值

比如有的空值不是NaN, 有的是一个'?'

先替换
使用numpy把"?"替换为NaN

import numpy as np # 替换 dataframe.replace(to_replace="?", value=np.nan)

把其他的缺失值换为NaN后, 然后就按照缺失值为NaN的方式就行操作

删除数据

如果只是单独的删除数据可以使用drop()方法

DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False) ''' 代码解释: labels : 就是要删除的行列的名字,用列表指定 index : 直接指定要删除的行 columns : 直接指定要删除的列 inplace=False : 表示返回一个新的值, 不修改原有数据 inplace=True : 表示在原来的基础上修改 '''

例:

import pandas as pd df = pd.read_csv('/text.xlsx') # 删除第0行和第1行 df.drop(labels=[0,1],axis=0) # 删除列名为 age 的列 df.drop(axis=1,columns=age)

感谢你能够认真阅读完这篇文章,希望小编分享的“pandas中NaN缺失值的解决方法”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI