pandas中NaN缺失值的处理方法

 更新时间:2021年05月13日 11:02:52   作者:蓝小白1024  
当我们用python进行数据处理时会遇到很多缺失值,对缺失值我们需要进行删除或者填补,本文主要介绍了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缺失值的处理方法的文章就介绍到这了,更多相关pandas NaN缺失值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python内置HTTP Server如何实现及原理解析

    python内置HTTP Server如何实现及原理解析

    这篇文章主要为大家介绍了python内置HTTP Server如何实现及原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Python使用Pillow添加水印

    Python使用Pillow添加水印

    这篇文章主要为大家详细介绍了Python使用Pillow添加水印,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Python如何导出导入所有依赖包详解

    Python如何导出导入所有依赖包详解

    在Python中我们在项目中会用到各种库,自带的自然不必再说,这篇文章主要给大家介绍了关于Python如何导出导入所有依赖包的相关资料,需要的朋友可以参考下
    2021-06-06
  • python末尾逗号导致返回结果是一个元组的问题

    python末尾逗号导致返回结果是一个元组的问题

    在Python中,除非特别需要返回或传参元组,一般不推荐在语句末尾添加逗号,应该注意检查是否存在末尾逗号导致的这些副作用,这篇文章主要介绍了python末尾逗号导致返回结果是一个元组,需要的朋友可以参考下
    2023-09-09
  • 将Django框架和遗留的Web应用集成的方法

    将Django框架和遗留的Web应用集成的方法

    这篇文章主要介绍了将Django框架和遗留的Web应用集成的方法,Django是Python百花齐放的web开发框架中人气最高的一个,需要的朋友可以参考下
    2015-07-07
  • Python学习之异常处理的避坑指南

    Python学习之异常处理的避坑指南

    这篇文章主要介绍了Python中异常处理的一些避坑指南,文中的示例代码讲解详细,对我们学习Python有一定帮助,感兴趣的小伙伴可以学习一下
    2022-03-03
  • Python创建一个元素都为0的列表实例

    Python创建一个元素都为0的列表实例

    今天小编就为大家分享一篇Python创建一个元素都为0的列表实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python利用字典破解WIFI密码的方法

    Python利用字典破解WIFI密码的方法

    今天小编就为大家分享一篇关于Python利用字典破解WIFI密码的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • 详解Python中的序列化与反序列化的使用

    详解Python中的序列化与反序列化的使用

    这篇文章主要介绍了详解Python中的序列化与反序列化的使用,针对pickle和cPickle对象进行了探究,需要的朋友可以参考下
    2015-06-06
  • python中多个装饰器的调用顺序详解

    python中多个装饰器的调用顺序详解

    这篇文章主要给大家介绍了关于python中多个装饰器的调用顺序,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07

最新评论