好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Python Pandas知識點之缺失值處理詳解

Python Pandas知識點之缺失值處理詳解

熱門標簽:激戰2地圖標注 哈爾濱ai外呼系統定制 陜西金融外呼系統 騰訊外呼線路 白銀外呼系統 公司電話機器人 廣告地圖標注app 唐山智能外呼系統一般多少錢 海南400電話如何申請

前言

數據處理過程中,經常會遇到數據有缺失值的情況,本文介紹如何用Pandas處理數據中的缺失值。

一、什么是缺失值

對數據而言,缺失值分為兩種,一種是Pandas中的空值,另一種是自定義的缺失值。

1. Pandas中的空值有三個:np.nan (Not a Number) 、 None 和 pd.NaT(時間格式的空值,注意大小寫不能錯),這三個值可以用Pandas中的函數isnull(),notnull(),isna()進行判斷。

isnull()和notnull()的結果互為取反,isnull()和isna()的結果一樣。對于這三個函數,只需要用其中一個就可以識別出數據中是否有空值。如果數據量較大,再配合numpy中的any()和all()函數就行了。

需要特別注意兩點:

  • 如果某一列數據全是空值且包含pd.NaT,np.nan和None會自動轉換成pd.NaT。
  • 空值(np.nan、None、pd.NaT)既不是空字符串"",也不是空格" "。

從Python解釋器來看,np.nan的類型是float,None的類型是NoneType,兩者在Pandas中都顯示為NaN,pd.NaT的類型是Pandas中的NaTType,顯示為NaT。而不管是空字符串還是空格,其數據類型都是字符串,Pandas判斷的結果不是空值。

2. 自定義缺失值有很多不同的形式,如上面剛說的空字符串和空格(當然,一般不用這兩個,因為看起來不夠直觀)。

在獲取數據時,可能會有一些數據無法得到,也可能數據本身就沒有,造成了缺失值。對于這些缺失值,在獲取數據時通常會用一些符號之類的數據來代替,如問號?,斜杠/,字母NA等。

如果處理的數據是自己獲取的,那自己知道缺失值是怎么定義的,如果數據是其他人提供的,一般會同時提供數據的說明文檔,說明文檔中會注明缺失值的定義方式。

對于自定義缺失值,不能用isnull()等三個函數來判斷,不過可以用isin()函數來判斷。找到這些值后,將其替換成np.nan,數據就只有空值一種缺失值了。

此外,在數據處理的過程中,也可能產生缺失值,如除0計算,數字與空值計算等。

二、判斷缺失值

1. 自定義缺失值的判斷和替換

isin(values): 判斷Series或DataFrame中是否包含某些值,可以傳入一個可迭代對象、Series、DataFrame或字典。在我們判斷某個自定義的缺失值是否存在于數據中時,用列表的方式傳入就可以了。

replace(to_replace=None, value=None): 替換Series或DataFrame中的指定值,一般傳入兩個參數,to_replace為被替換的值,value為替換后的值。to_replace和value不僅支持Python中的整型、字符串、列表、字典等,還支持正則表達式。

使用replace()時,默認返回原數據的一個副本,replace()中的inplace參數默認為False,將inplace參數修改為True,則會修改數據本身。其他參數這里就不展開了,有需要可以自己添加。

其實replace()函數已經可以用于缺失值的填充處理了,直接一步到位,而不用先替換成空值再處理。當然,先替換成空值,可以與空值一起處理。

2. 空值判斷

isnull(): 判斷Series或DataFrame中是否包含空值,與isna()結果相同,與notnull()結果相反。返回結果是一個與原數據形狀相同的Series或DataFrame。

如果數據很多,我們不可能肉眼觀察返回結果中的布爾值,所以需要借助numpy中的any()函數或all()函數,進一步對結果進行判斷。

三、刪除缺失值

dropna(axis=0, how="any", thresh=None, subset=None, inplace=False): 刪除Series或DataFrame中的空值。

axis: axis參數默認為0('index'),按行刪除,即刪除有空值的行。將axis參數修改為1或‘columns',則按列刪除,即刪除有空值的列。在實際的應用中,一般不會按列刪除,例如數據中的一列表示年齡,不能因為年齡有缺失值而刪除所有年齡數據。

how: how參數默認為any,只要一行(或列)數據中有空值就會刪除該行(或列)。將how參數修改為all,則只有一行(或列)數據中全部都是空值才會刪除該行(或列)。

thresh: 表示刪除空值的界限,傳入一個整數。如果一行(或列)數據中少于thresh個非空值(non-NA values),則刪除。​也就是說,一行(或列)數據中至少要有thresh個非空值,否則刪除。

subset: 刪除空值時,只判斷subset指定的列(或行)的子集,其他列(或行)中的空值忽略,不處理。當按行進行刪除時,subset設置成列的子集,反之。

inplace: 默認為False,返回原數據的一個副本。將inplace參數修改為True,則會修改數據本身。

刪除缺失值,必然會導致數據量的減少,如果缺失值占數據的比例較大,比如超過了數據的10%(具體標準根據項目來定),刪除數據對數據分析的結果會有很大的影響,不合理。

四、填充缺失值

fillna(value=None, method=None, axis=None, inplace=False, limit=None): 填充Series或DataFrame中的空值。

value: 表示填充的值,可以是一個指定值,也可以是字典, Series或DataFrame。

method: 填充的方式,默認為None。有 ffill,pad,bfill,backfill 四種填充方式可以使用,ffill 和 pad 表示用缺失值的前一個值填充,如果axis=0,則用空值上一行的值填充,如果axis=1,則用空值左邊的值填充。假如空值在第一行或第一列,以及空值前面的值全都是空值,則無法獲取到可用的填充值,填充后依然保持空值。bfill 和 backfill 表示用缺失值的后一個值填充,axis的用法以及找不到填充值的情況同 ffill 和 pad 。

注意:當指定填充方式method時,不能同時指定填充值value,否則報錯。

axis: 通常配合method參數使用,axis=0表示按行,axis=1表示按列。

limit: 表示填充執行的次數。如果是按行填充,則填充一行表示執行一次,按列同理。

在缺失值填充時,填充值是自定義的,對于數值型數據,最常用的兩種填充值是用該列的均值和眾數。DataFrame的眾數也是一個DataFrame數據,眾數可能有多個(極限情況下,當數據中沒有重復值時,眾數就是原DataFrame本身),所以用mode()函數求眾數時取第一行用于填充就行了。

除了可以在fillna()函數中傳入method參數指定填充方式外,Pandas中也實現了不同填充方式的函數,可以直接調用。

pad(axis=0, inplace=False, limit=None): 用缺失值的前一個值填充。

ffill(): 同pad()。

bfill(): 用缺失值的后一個值填充。

backfill(): 同bfill()。

在進行數據填充時,可能填充之后還有空值,如用ffill 和 pad填充時,數據第一行就是空值。對于這種情況,需要在填充前人工進行判斷,避免選擇不適合的填充方式,并在填充完成后,再檢查一次數據中是否還有空值。

總結

到此這篇關于Python Pandas知識點之缺失值處理的文章就介紹到這了,更多相關Pandas缺失值處理內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python 如何通過KNN來填充缺失值
  • python 檢查數據中是否有缺失值,刪除缺失值的方式
  • python實現數據清洗(缺失值與異常值處理)
  • Python Pandas對缺失值的處理方法
  • Python時間序列缺失值的處理方法(日期缺失填充)
  • python缺失值的解決方法總結

標簽:益陽 惠州 鷹潭 黑龍江 常德 上海 四川 黔西

巨人網絡通訊聲明:本文標題《Python Pandas知識點之缺失值處理詳解》,本文關鍵詞  Python,Pandas,知識點,之,缺失,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python Pandas知識點之缺失值處理詳解》相關的同類信息!
  • 本頁收集關于Python Pandas知識點之缺失值處理詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 美女被强行扒开双腿被桶屁股| 国产卡一卡二卡3卡乱码免费| 鲁丝丝国产一区二区| 调教羞耻超短裙任务| 黑人一级毛片| 啊灬啊灬啊灬快好深在线观看| 高清videosgratis日本hd| 亂伦国产一区二区三区| 777午夜色情理伦片在线播放| 小扫货水能么多叫出来| 玩肥熟老妇bbwxxx视频| 日本性爱| 亚洲免费闲人蜜桃| 你们老公玩你的时候都是什么样的 | 粉嫩AV四季AV绯色AV第一区| 极品绝色尤物爆乳无码| 被修理工侵犯的漂亮人妻| 正面偷拍女厕36个美女嘘嘘| ass印度艳妇pics| 性欧洲大肥性欧洲大肥女| 中国人体裸体人体欣赏ppt| 91久久精品国产性色也91久久| 国产精品xxx电影| 亚洲爱爱网| 毛茸茸**| 日本按摩电影| 日你逼| 亚洲精品秘?一区二区三区精华液 国产精品流白浆视频AV拍拍拍 | 三上悠亚被躁57分钟未删减| 兔子先生爱国者| 国产成人精品日本亚洲专| 性一交一乱一伦| 秦岚翘臀后进娇喘呻吟的导演是谁 | 亚洲精品小说| 男女扒开胸罩??脱裤子| 上流社会小说免费阅读全文| 男女啪啪高清无遮挡免费直播软件 | 成人一级黄色毛片| jiZZJIZZ成熟丰满少妇| 亚洲视频网站| 美女露胸露屁股|