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!
推薦閱讀:
- 淺談pandas中對nan空值的判斷和陷阱
- 使用pandas或numpy處理數據中的空值(np.isnan()/pd.isnull())
- 簡單且有用的Python數據分析和機器學習代碼
- Pandas||過濾缺失數據||pd.dropna()函數的用法說明
- Python數據分析之缺失值檢測與處理詳解