pandas里怎样处理缺失值为NaN的情况?
发布时间:2022-03-09 13:56:33 所属栏目:语言 来源:互联网
导读:pandas里怎样处理缺失值为NaN的情况?Python中我们用pandas处理数据非常的方便,但是也常会遇到一些问题。例如andas中NaN缺失值的情况,一些新手朋友可能不太清楚怎样解决,下面给大家分享两种处理pandas中NaN缺失值的方法,有需要的朋友可以参考。 import p
|
pandas里怎样处理缺失值为NaN的情况?Python中我们用pandas处理数据非常的方便,但是也常会遇到一些问题。例如andas中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) (编辑:濮阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
