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 缺失值 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
ActiveMQ:使用Python訪問ActiveMQ的方法
今天小編就為大家分享一篇ActiveMQ:使用Python訪問ActiveMQ的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01python中的__init__ 、__new__、__call__小結
這篇文章主要介紹了python中的__init__ 、__new__、__call__小結,需要的朋友可以參考下2014-04-04Python函數命名空間和作用域(Local與Global)
這篇文章主要介紹了Python函數命名空間和作用域分別介紹Local與Global模式,內容詳細,具有一定的參考價值,需要的小伙伴可以參考一下2022-03-03