Python缺失值處理方法

前言:

前面python重復值處理得方法我們講瞭重復值是怎麼處理的,今天就來說說缺失值。缺失值主要分為機械原因和人為原因。機械原因就是存儲器壞瞭,機器故障等等原因導致某段時間未能收集到數據。人為原因的情況種類就更多瞭,如刻意隱瞞等等。

先構建一個含有缺失值的DataFrame,如下:

import pandas as pd
import numpy as np
data = pd.DataFrame([[1,np.nan,3],[np.nan,5,np.nan]],columns = ['a','b','c'])
print(data)

看出來瞭嗎?np.nan就是NAN值,空值的意思。

在numpy中有一個函數可以用來查看空值,不對,是兩個,isnull()和isna()這兩函數。

我們分別來試試它們的效果:

import pandas as pd
import numpy as np
data = pd.DataFrame([[1,np.nan,3],[np.nan,5,np.nan]],columns = ['a','b','c'])
data.isnull()
data.isna()

可以看出,這兩函數的作用就是判斷數據是不是空值,如果是,就返回true,不是就是false。

通常,對空值的處理有兩種方法,一種就是把空值刪除,另外一種就是把它填上,我們先說第一種,刪除空值,我們可以dropna()這一函數來把空值刪除。要註意,它會把含有空值的整行都刪掉。例如:

import pandas as pd
import numpy as np
data = pd.DataFrame([[1,np.nan,3],[np.nan,5,np.nan]],columns = ['a','b','c'])
data.dropna()

上面的例子用瞭drop函數後,啥都沒啦! 

我們可以設置當每行空值多餘2個時再刪除(低於2個保留),這時候要用到dropna()的參數thresh。

補充空值的話有挺多的方法,有用均值補充,中位數補充等,我們要用到fillna()這一函數。例如,我們用均值來填充上文中的data,

代碼如下:

import pandas as pd
import numpy as np
data = pd.DataFrame([[1,np.nan,3],[np.nan,5,np.nan]],columns = ['a','b','c'])
data.fillna(data.mean())

代碼運行的結果如下,可以看到空值都被對應列的均值所填充。

到此這篇關於Python缺失值處理方法的文章就介紹到這瞭,更多相關Python 缺失值 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: