最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年05月11日 09:10:24   作者:Python碎片  
這篇文章主要給大家介紹了關(guān)于Pandas知識點之缺失值處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

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

一、什么是缺失值

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

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

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

需要特別注意兩點:

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

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

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

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

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

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

此外,在數(shù)據(jù)處理的過程中,也可能產(chǎn)生缺失值,如除0計算,數(shù)字與空值計算等。

二、判斷缺失值

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

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

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

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

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

2. 空值判斷

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

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

三、刪除缺失值

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

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

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

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

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

inplace: 默認(rèn)為False,返回原數(shù)據(jù)的一個副本。將inplace參數(shù)修改為True,則會修改數(shù)據(jù)本身。

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

四、填充缺失值

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

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

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

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

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

limit: 表示填充執(zhí)行的次數(shù)。如果是按行填充,則填充一行表示執(zhí)行一次,按列同理。

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

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

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

ffill(): 同pad()。

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

backfill(): 同bfill()。

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

總結(jié)

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

相關(guān)文章

  • Pycharm更換python解釋器的方法

    Pycharm更換python解釋器的方法

    今天小編就為大家分享一篇Pycharm更換python解釋器的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python獲取DLL和EXE文件版本號的方法

    Python獲取DLL和EXE文件版本號的方法

    這篇文章主要介紹了Python獲取DLL和EXE文件版本號的方法,實例分析了Python獲取系統(tǒng)文件信息的技巧,需要的朋友可以參考下
    2015-03-03
  • Python字符串格式化f-string多種功能實現(xiàn)

    Python字符串格式化f-string多種功能實現(xiàn)

    這篇文章主要介紹了Python字符串格式化f-string格式多種功能實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • python字典中items()函數(shù)用法實例

    python字典中items()函數(shù)用法實例

    Python字典items()函數(shù)作用以列表返回可遍歷的(鍵, 值)元組數(shù)組,下面這篇文章主要給大家介紹了關(guān)于python字典中items()函數(shù)用法的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Anaconda+vscode+pytorch環(huán)境搭建過程詳解

    Anaconda+vscode+pytorch環(huán)境搭建過程詳解

    這篇文章主要介紹了Anaconda+vscode+pytorch環(huán)境搭建過程詳解,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • Python 圖片文字識別的實現(xiàn)之PaddleOCR

    Python 圖片文字識別的實現(xiàn)之PaddleOCR

    OCR方向的工程師,之前一定聽說過PaddleOCR這個項目,其主要推薦的PP-OCR算法更是被國內(nèi)外企業(yè)開發(fā)者廣泛應(yīng)用,短短半年時間,累計Star數(shù)量已超過15k,頻頻登上Github Trending和Paperswithcode 日榜月榜第一
    2021-11-11
  • python3.7 sys模塊的具體使用

    python3.7 sys模塊的具體使用

    這篇文章主要介紹了python3.7 sys模塊的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python使用arp欺騙偽造網(wǎng)關(guān)的方法

    python使用arp欺騙偽造網(wǎng)關(guān)的方法

    這篇文章主要介紹了python使用arp欺騙偽造網(wǎng)關(guān)的方法,涉及Python偽造網(wǎng)關(guān)的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • Pytorch 中net.train 和 net.eval的使用說明

    Pytorch 中net.train 和 net.eval的使用說明

    這篇文章主要介紹了Pytorch 中net.train 和 net.eval的使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python實現(xiàn)提取文章摘要的方法

    Python實現(xiàn)提取文章摘要的方法

    這篇文章主要介紹了Python實現(xiàn)提取文章摘要的方法,實例分析了Python提取文章摘要的原理與實現(xiàn)技巧,需要的朋友可以參考下
    2015-04-04

最新評論

湄潭县| 资源县| 郑州市| 成武县| 盱眙县| 铅山县| 平安县| 嘉兴市| 常宁市| 长治县| 武邑县| 房产| 运城市| 乌拉特前旗| 乌拉特中旗| 会同县| 天峻县| 峨山| 靖边县| 南皮县| 镇远县| 田阳县| 吴忠市| 内乡县| 吉安市| 沁水县| 凤凰县| 车险| 广宁县| 九江市| 宁河县| 溆浦县| 突泉县| 班戈县| 九江县| 临清市| 五河县| 绍兴市| 永城市| 新乐市| 扬州市|