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缺失值内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341