pandas 過濾缺失值函式 dropna

2021-09-08 16:18:32 字數 2045 閱讀 7300

參考資料

pandas官方文件 release 0.23.4

利用python進行資料分析 第二版  wes mckinney

函式功能:當dataframe資料**現缺失值時,刪除這些缺失值所在的軸(滿足特定條件)

呼叫方法:

df  =  data.dropna(axis=0,how='any',thresh=none,subset=none,inplace=false)

引數說明:

axis :為軸方向 : 預設為axis=0

當axis=0,當某行出現缺失值時,將該行丟棄並返回

當axis=1,當某列出現缺失值時,將改列丟棄並返回

how :確定缺失值的個數:預設時為how=『any』

how=『any』 ,表明只要某行或者列出現缺失值就將該行列丟棄

how=『all』    ,表明某行列全部為缺失值才將其丟棄

thresh:閾值設定

當行列中非預設值的數量少於給定的值就將該行丟棄    

subset:部分標籤中刪除某行列

subset = [  'a','d']  即丟棄子列 a d 中含有缺失值的行

iniplace: bool取值,預設false

當inplace= true, 即對原資料操作,沒有返回值

**例子如下:

>>>import numpy as np

>>>import pandas as pd

>>>from pandas import series,dataframe

>>>dt = dataframe(np.arange(20).reshape(4,5),columns=['a','b','c','d','e'])

>>>for i in range(4):

... for j in range(4-i):

... dt.iloc[i,j] = np.nan

>>>dt

a b c d e

0 0.0 1.0 2.0 3 4

1 nan nan nan 8 9

2 nan nan 12.0 13 14

3 nan 16.0 17.0 18 19

>>>dt.dropna()

a b c d e

0 0.0 1.0 2.0 3 4

>>>dt.dropna(axis = 1)

d e

0 3 4

1 8 9

2 13 14

3 18 19

>>>dt.dropna(how='all') #因為每一行都有非缺失值,所以不丟棄任何行

a b c d e

0 0.0 1.0 2.0 3 4

1 nan nan nan 8 9

2 nan nan 12.0 13 14

3 nan 16.0 17.0 18 19

>>>dt.dropna(thresh=4) #因為第1行和第2行中非缺失值少於4個,所以丟棄,只剩下第0行和第3行

a b c d e

0 0.0 1.0 2.0 3 4

3 nan 16.0 17.0 18 19

>>>dt.dropna(subset=['b','d']) #標籤a列和b列中對應的第1行和第2行中有缺失值

a b c d e

0 0.0 1.0 2.0 3 4

3 nan 16.0 17.0 18 19

>>>dt.dropna(inplace = true)

>>>dt

a b c d e

0 0.0 1.0 2.0 3 4

完結。。。。。。

歡迎交流   email : [email protected]

pandas 填充缺失值

當資料中存在nan缺失值時,我們可以用其他數值替代nan,主要用到了dataframe.fillna 方法,下面我們來看看具體的用法 1.先來建立乙個帶有缺失值的dataframe 2.使用0替代缺失值 當然你可以用任意乙個數字代替nan df.fillna 0 3.用乙個字串代替缺失值 df.fi...

Pandas 缺失值處理

二 處理缺失值 首先拿到乙份資料,以dataframe提取後,要檢視缺失值的情況 import pandas as pd df pd.read csv df.isnull 獲得true,false的返回值 df.isnull sum 判斷缺失的數量常用此介面來快速判斷各特徵的缺失值情況!df.dro...

Pandas缺失值處理

判斷資料是否為nan pd.isnull df pd.notnull df 判斷缺失值是否存在 np.all pd.notnull data 返回false代表有空值 np.any pd.isnull data 返回true代表有空值處理方式 2 替換缺失值 fillna value,inplace...