溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

pandas 空數(shù)據(jù)處理方法詳解

發(fā)布時間:2020-09-05 15:14:47 來源:腳本之家 閱讀:218 作者:蔡文君 欄目:開發(fā)技術(shù)

這篇文章主要介紹了pandas 空數(shù)據(jù)處理方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

方法一:直接刪除

1.查看行或列是否有空格(以下的df為DataFrame類型,axis=0,代表列,axis=1代表行,以下的返回值都是行或列索引加上布爾值)

isnull方法

查看行:df.isnull().any(axis=1)

查看列:df.isnull().any(axis=0)

notnull方法:

查看行:df.notnull().all(axis=1)

查看列:df.notnull().all(axis=0)

例子:

df.isnull().any(axis=1) # 檢測行內(nèi)是否有空值
0 False
1 True
2 False
3 True
4 False
5 True
6 False
7 True
8 False
9 False
dtype: bool

注意點:以上方法都可以用~取反的辦法獲取相反的結(jié)果

2.在1的前提下使用df.loc[],可取出1中篩選出數(shù)據(jù)的具體數(shù)據(jù)如:

df.loc[df.isnull().any(axis=1)]

取出這幾行的索引可用屬性index如:df.loc[df.isnull().any(axis=1)].index

得到這些索引后可以使用drop方法進行刪除如:

注意:drop方法中的axis值與其他方法相反,axis=0表示行,=1表示列。

df.drop(labels=drop_index, axis=0)

總結(jié)下來為4步:

一.使用isnull或notnull篩選:df.isnull().any(axis=0)

二.使用loc取出具體數(shù)據(jù):df.loc[df.isnull().any(axis=1)]

三:取出這些數(shù)據(jù)的索引:df.loc[df.isnull().any(axis=1)].index

四.使用drop刪除:df.drop(labels=drop_index, axis=0)

方法二:填充空值

步驟和方法一前幾步相同

isnull()

notnull()

dropna(): 過濾丟失數(shù)據(jù)(df.dropna() 可以選擇過濾的是行還是列(默認(rèn)為行):axis中0表示行,1表示的列)

fillna(): 填充丟失數(shù)據(jù)(可以選擇自主添加數(shù)據(jù),或者用表中原有的數(shù)據(jù)進行補充)

1.使用dropna(不常用):df.dropna(axis=0)

2.使用fillna(常用):

一.df.fillna(value=666)給所有的控制賦值為666

二.df.fillna(method='ffill', axis=0) # axis=0表示在垂直方向填充(axis值:0為垂直,1為水平),使用上方的值對空值進行填充,組合起來就是,使用垂直方向上方的值對當(dāng)前位置的值進行填充

三.df.fillna(method='bfill', axis=1) # axis=1表示在水平方向填充(axis值為0垂直1為水平),bfill表示使用后面的值對空值進行填充,組合起來就是,使用水平方向右邊的值對當(dāng)前位置的值進行填充

總結(jié):ffill(前)和bfill(后)決定前或后,axis決定垂直或水平

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責(zé)聲明:本站發(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)容。

AI