您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python中缺失值怎么處理”,在日常操作中,相信很多人在Python中缺失值怎么處理問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python中缺失值怎么處理”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
我們先創(chuàng)建一個帶有缺失值的數(shù)據(jù)框(DataFrame
)。
import pandas as pd df = pd.DataFrame( {'A': [None, 2, None, 4], 'B': [10, None, None, 40], 'C': [100, 200, None, 400], 'D': [None, 2000, 3000, None]}) df
數(shù)值類缺失值在 Pandas 中被顯示為 NaN (Not A Number)。下面看看如何判斷哪些列或者哪些行有缺失值。
1.info()
info() 返回的結(jié)果中,我們只需要觀察每一列對應的 Non-Null Count 的數(shù)量是否等于 RangeIndex(索引范圍) 即可。
2.isnull()
isnull() 返回一個與原 DataFrame 大小(列數(shù),行數(shù))相同的數(shù)據(jù)框,行列對應的數(shù)據(jù)代表著該位置是否為缺失值。
df.isnull()
使用 sum() 來檢測每列中的缺失值的數(shù)量。
df.isnull().sum()
通過 .T 將 DataFrame 轉(zhuǎn)置,獲取檢測每行中缺失值的數(shù)量。
df.isnull().T.sum()
如果出現(xiàn)缺失值的行/列重要性不大的話,可以直接使用 dropna()
刪除帶有缺失值的行/列。
df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
參數(shù)含義
axis:控制行列的參數(shù),0 行,1 列。
how:any,如果有 NaN,刪除該行或列;all,如果所有值都是 NaN,刪除該行或列。
thresh:指定 NaN 的數(shù)量,當 NaN 數(shù)量達到才刪除。
subset:要考慮的數(shù)據(jù)范圍,如:刪除缺失行,就用subset指定參考的列,默認是所有列。
inplace:是否修改原數(shù)據(jù),True直接修改原數(shù)據(jù),返回 None,F(xiàn)alse則返回處理后的數(shù)據(jù)框。
指定 axis = 1,如果列中有缺失值,則刪除該列。
df.dropna(axis=1, how='any')
由于每列都有缺失值,所以只剩索引。
指定 axis = 0(默認),如果行中有缺失值,則刪除該行。
df.dropna(axis=0, how='any')
以 ABC 列為參照,刪除這三列都是缺失值的行。
df.dropna(axis=0, subset=['A', 'B', 'C'], how='all')
保留至少有3個非NaN值的行。
df.dropna(axis=0, thresh=3)
另一種常見的缺失值處理方式就是使用 fillna()
填補缺失值。
df.fillna(value=None, method=None, axis=0, inplace=False, limit=None)
1. 直接指定填充值
df.fillna(666)
2.用缺失值前/后的值填充
按前一個值填充
當method 值為 ffill 或 pad時,按前一個值進行填充。
當 axis = 0,用缺失值同一列的上一個值填充,如果缺失值在第一行則不填充。
當 axis = 1,用缺失值同一行的上一個值填充,如果缺失值在第一列則不填充。
df.fillna(axis=0, method='pad')
按后一個值填充
當method 值為 backfill 或 bfill時,按后一個值進行填充。
當 axis = 0,用缺失值同一列的下一個值填充,如果缺失值在最后一行則不填充。
當 axis = 1,用缺失值同一行的下一個值填充,如果缺失值在最后一列則不填充。
df.fillna(axis=0, method='bfill')
指定相應的方法來填充
df.fillna(df.mean())
limit限制填充次數(shù)
在ABCD列上,每列只填充第一個空值。
df.fillna(value=666, axis=1, limit=1)
到此,關(guān)于“Python中缺失值怎么處理”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。