这篇教程pandas中NaN缺失值的处理方法写得很实用,希望能帮到您。 本文主要介绍了pandas中NaN缺失值的处理方法,主要有两种方法,具体如下: 缺失值处理
两种方法: 处理缺失值为NaN
先判断数据中是否存在NaN,通过下面两个方法中任意一个 pd.isnull(dataframe)# dataframe为数据如果数据中存在NaN返回True,如果没有就返回Falsepd.notnull(dataframe)该方法与isnull相反any() 和 all()"""pd.isnull(dataframe).any()判断哪一个字段中存在缺失值没有就返回Falsepd.notnull(dataframe).all()判断哪一个字段中存在缺失值没有就返回True""" 使用numpy也可以进行判断 import numpy as npnp.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 pddf = 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缺失值内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net! 基于BCEWithLogitsLoss样本不均衡的处理方案 聊聊python中not 与 is None的区别 |