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

在Pandas中處理NaN值的方法

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

關(guān)于NaN值

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

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

import pandas as pd

# We create a list of Python dictionaries
# 創(chuàng)建一個字典列表
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)建一個DataFrame并設(shè)置行索引
store_items = pd.DataFrame(items2, index = ['store 1', 'store 2', 'store 3'])

# 顯示
store_items

顯示:

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

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

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

輸出:

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

.isnull() 方法返回一個大小和 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() 方法兩次。

要使用該方法兩次,是因為第一個 sum() 返回一個 Pandas Series,其中存儲了列上的邏輯值 True 的總數(shù)

第二個 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 不會改變。你始終可以在 dropna() 方法中將關(guān)鍵字 inplace 設(shè)為 True,在原地刪除目標行或列。

將NaN值替換為合適的值

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

store_items.fillna(0)

顯示:

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

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

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

顯示:

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

但是注意, store 1 中的 NaN 值沒有被替換掉。因為這列前面沒有值,因為 NaN 值是該列的第一個值。

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

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

顯示:

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

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

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

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

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

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

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

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

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

同時,也可用行值插入

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

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

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

相關(guān)文章

  • 論文查重python文本相似性計算simhash源碼

    論文查重python文本相似性計算simhash源碼

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

    初步理解Python進程的信號通訊

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

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

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

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

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

    python操作excel之xlwt與xlrd

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

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

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

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

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

    python中的urlparse()方法使用

    這篇文章主要介紹了python中的urlparse()方法使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    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)系,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05

最新評論

堆龙德庆县| 孝感市| 竹溪县| 邮箱| 永顺县| 禄丰县| 张北县| 宜都市| 淄博市| 贺州市| 孟村| 张家港市| 白玉县| 马边| 霸州市| 张家口市| 卓资县| 靖州| 沧源| 武安市| 临潭县| 温泉县| 平顺县| 海晏县| 资源县| 廉江市| 玉屏| 新宁县| 砀山县| 南城县| 景德镇市| 商河县| 商洛市| 崇左市| 东乡族自治县| 中西区| 龙江县| 丘北县| 阿鲁科尔沁旗| 德格县| 合水县|