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

在Pandas中處理NaN值的方法

 更新時(shí)間:2019年06月25日 10:44:55   作者:Johnny丶me  
這篇文章主要介紹了在Pandas中處理NaN值的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

關(guān)于NaN值

-在能夠使用大型數(shù)據(jù)集訓(xùn)練學(xué)習(xí)算法之前,我們通常需要先清理數(shù)據(jù), 也就是說,我們需要通過某個(gè)方法檢測并更正數(shù)據(jù)中的錯(cuò)誤。
- 任何給定數(shù)據(jù)集可能會(huì)出現(xiàn)各種糟糕的數(shù)據(jù),例如離群值或不正確的值,但是我們幾乎始終會(huì)遇到的糟糕數(shù)據(jù)類型是缺少值。
- Pandas 會(huì)為缺少的值分配 NaN 值。

創(chuàng)建一個(gè)具有NaN值得 Data Frame

import pandas as pd

# We create a list of Python dictionaries
# 創(chuàng)建一個(gè)字典列表
items2 = [{'bikes': 20, 'pants': 30, 'watches': 35, 'shirts': 15, 'shoes':8, 'suits':45},
{'watches': 10, 'glasses': 50, 'bikes': 15, 'pants':5, 'shirts': 2, 'shoes':5, 'suits':7},
{'bikes': 20, 'pants': 30, 'watches': 35, 'glasses': 4, 'shoes':10}]

# 創(chuàng)建一個(gè)DataFrame并設(shè)置行索引
store_items = pd.DataFrame(items2, index = ['store 1', 'store 2', 'store 3'])

# 顯示
store_items

顯示:

數(shù)據(jù)量大時(shí)統(tǒng)計(jì)NaN的個(gè)數(shù)

# 計(jì)算在store_items中NaN值的個(gè)數(shù)
x = store_items.isnull().sum().sum()

# 輸出
print('在我們DataFrame中NaN的數(shù)量:', x)

輸出:

在我們DataFrame中NaN的數(shù)量: 3

.isnull() 方法返回一個(gè)大小和 store_items 一樣的布爾型 DataFrame,并用 True 表示具有 NaN 值的元素,用 False 表示非 NaN 值的元素。

store_items.isnull()

顯示:

在 Pandas 中,邏輯值 True 的數(shù)字值是 1,邏輯值 False 的數(shù)字值是 0。

因此,我們可以通過數(shù)邏輯值 True 的數(shù)量數(shù)出 NaN 值的數(shù)量。

為了數(shù)邏輯值 True 的總數(shù),我們使用 .sum() 方法兩次。

要使用該方法兩次,是因?yàn)榈谝粋€(gè) sum() 返回一個(gè) Pandas Series,其中存儲(chǔ)了列上的邏輯值 True 的總數(shù)

第二個(gè) sum() 將上述 Pandas Series 中的 1 相加

除了數(shù) NaN 值的數(shù)量之外,我們還可以采用相反的方式,我們可以數(shù)非 NaN 值的數(shù)量。為此,我們可以使用 .count() 方法

print('在我們DataFrame的列中具有非NaN值得數(shù)量分別為:\n', store_items.count())

輸出:

在我們DataFrame的列中具有非NaN值得數(shù)量:
bikes 3
glasses 2
pants 3
shirts 2
shoes 3
suits 2
watches 3
dtype: int64

處理這些 NaN 值

  • 如果 axis = 0,.dropna(axis) 方法將刪除包含 NaN 值的任何行
  • 如果 axis = 1,.dropna(axis) 方法將刪除包含 NaN 值的任何列
# 刪除包含NaN值得任何行
store_items.dropna(axis = 0)

顯示為:

store_items.dropna(axis = 1)

顯示為:

注意:

- .dropna() 方法不在原地地刪除具有 NaN 值的行或列。
- 原始 DataFrame 不會(huì)改變。你始終可以在 dropna() 方法中將關(guān)鍵字 inplace 設(shè)為 True,在原地刪除目標(biāo)行或列。

將NaN值替換為合適的值

我們不再刪除 NaN 值,而是將它們替換為合適的值。例如,我們可以選擇將所有 NaN 值替換為 0。為此,我們可以使用 .fillna() 方法

store_items.fillna(0)

顯示:

我們還可以使用 .fillna() 方法將 NaN 值替換為 DataFrame 中的上個(gè)值,稱之為前向填充

.fillna(method = 'ffill', axis) 將通過前向填充 (ffill) 方法沿著給定 axis 使用上個(gè)已知值替換 NaN 值

store_items.fillna(method = 'ffill', axis = 0)

顯示:

注意 store 3 中的兩個(gè) NaN 值被替換成了它們所在列中的上個(gè)值。

但是注意, store 1 中的 NaN 值沒有被替換掉。因?yàn)檫@列前面沒有值,因?yàn)?NaN 值是該列的第一個(gè)值。

現(xiàn)在,使用上個(gè)行值進(jìn)行前向填充

store_items.fillna(method = 'ffill', axis = 1)

顯示:

在這種情況下:所有 NaN 值都被替換成了之前的行值

同時(shí),也可以選擇用 DataFrame 中之后的值替換 NaN 值,稱之為后向填充

# 向后填充列,即為NaN的列值,用其列中的后一個(gè)來填充
store_items.fillna(method = 'backfill', axis = 0)

同理:也可以向后填充行,即為NaN的行值,用其行中的后一個(gè)來填充

# 向后填充行,即為NaN的行值,用其行中的后一個(gè)來填充
store_items.fillna(method = 'backfill', axis = 1)

注意:.fillna() 方法不在原地地替換(填充)NaN 值。也就是說,原始 DataFrame 不會(huì)改變。你始終可以在 fillna() 函數(shù)中將關(guān)鍵字 inplace 設(shè)為 True,在原地替換 NaN 值。

還可以選擇使用不同的插值方法替換 NaN 值

.interpolate(method = 'linear', axis) 方法將通過 linear 插值使用沿著給定 axis 的值替換 NaN 值, 這個(gè)差值也就是前后或者上下的中間值

store_items.interpolate(method = 'linear', axis = 0)

同時(shí),也可用行值插入

store_items.interpolate(method = 'linear', axis = 1)

和我們看到的其他方法一樣,.interpolate() 方法不在原地地替換 NaN 值,圖片就省略了。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 論文查重python文本相似性計(jì)算simhash源碼

    論文查重python文本相似性計(jì)算simhash源碼

    這篇文章主要為大家介紹了python文本相似性計(jì)算simhash源碼來實(shí)現(xiàn)論文的查重,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • 初步理解Python進(jìn)程的信號通訊

    初步理解Python進(jìn)程的信號通訊

    這篇文章主要介紹了初步理解Python進(jìn)程的信號通訊,作者列舉了Linux系統(tǒng)下的信號通訊示例,需要的朋友可以參考下
    2015-04-04
  • 詳解Selenium如何實(shí)現(xiàn)獲取cookies并保存

    詳解Selenium如何實(shí)現(xiàn)獲取cookies并保存

    這篇文章主要為大家詳細(xì)介紹了Selenium如何實(shí)現(xiàn)獲取cookies保存起來用于下次訪問,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-05-05
  • python?多態(tài)?協(xié)議?鴨子類型詳解

    python?多態(tài)?協(xié)議?鴨子類型詳解

    這篇文章主要為大家介紹了python?多態(tài)?協(xié)議?鴨子類型,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • python操作excel之xlwt與xlrd

    python操作excel之xlwt與xlrd

    這篇文章主要介紹了python使用xlwt與xlrd操作excel,需要的朋友可以參考下
    2022-12-12
  • python字典中items()函數(shù)用法實(shí)例

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

    Python字典items()函數(shù)作用以列表返回可遍歷的(鍵, 值)元組數(shù)組,下面這篇文章主要給大家介紹了關(guān)于python字典中items()函數(shù)用法的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Python 裝飾器原理、定義與用法詳解

    Python 裝飾器原理、定義與用法詳解

    這篇文章主要介紹了Python 裝飾器原理、定義與用法,結(jié)合實(shí)例形式分析了Python裝飾器的概念、定義、實(shí)現(xiàn)方法、應(yīng)用場景及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • python中的urlparse()方法使用

    python中的urlparse()方法使用

    這篇文章主要介紹了python中的urlparse()方法使用,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 深入解析Python中的descriptor描述器的作用及用法

    深入解析Python中的descriptor描述器的作用及用法

    在Python中描述器也被稱為描述符,描述器能夠?qū)崿F(xiàn)對對象屬性的訪問控制,下面我們就來深入解析Python中的descriptor描述器的作用及用法
    2016-06-06
  • 聊聊PyTorch中eval和no_grad的關(guān)系

    聊聊PyTorch中eval和no_grad的關(guān)系

    這篇文章主要介紹了聊聊PyTorch中eval和no_grad的關(guān)系,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05

最新評論

会昌县| 滨海县| 九江县| 临颍县| 北宁市| 江城| 平度市| 龙井市| 乐平市| 正阳县| 扶绥县| 长宁县| 万全县| 中超| 安阳县| 合阳县| 通海县| 延吉市| 汤阴县| 呼伦贝尔市| 政和县| 通许县| 清原| 黄骅市| 辽阳县| 高阳县| 定结县| 蒙山县| 竹溪县| 澜沧| 定结县| 宁陵县| 儋州市| 芜湖县| 蕉岭县| 翼城县| 颍上县| 犍为县| 枣阳市| 望谟县| 金川县|