pandas中NaN缺失值的處理方法
本文主要介紹了pandas中NaN缺失值的處理方法,主要有兩種方法,具體如下:
import pandas as pd缺失值處理
兩種方法:
刪除含有缺失值的樣本 替換/插補處理缺失值為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缺失值內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: