您好,登錄后才能下訂單哦!
這篇文章給大家介紹pandas中NaN缺失值如何解決,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
具體如下:
import pandas as pd
兩種方法:
刪除含有缺失值的樣本
替換/插補
先判斷數據中是否存在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, 有的是一個'?'
先替換
使用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缺失值如何解決就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。