欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python處理缺失值的8種不同方法實例

 更新時間:2022年06月01日 14:51:38   作者:Python學習與數據挖掘  
缺失值是指粗糙數據中由于缺少信息而造成的數據的聚類、分組、刪失或截斷,下面這篇文章主要給大家介紹了關于Python處理缺失值的8種不同方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

前言

缺失值可能是數據科學中最不受歡迎的值,然而,它們總是在身邊。忽略缺失值也是不合理的,因此我們需要找到有效且適當地處理它們的方法。

在本文中,我們將介紹 8 種不同的方法來解決缺失值問題,哪種方法最適合特定情況取決于數據和任務。

讓我們首先創(chuàng)建一個示例數據框并向其中添加一些缺失值。

我們有一個 10 行 6 列的數據框。

下一步是添加缺失值。 我們將使用 loc 方法選擇行和列組合,并使它們等于“np.nan”,這是標準缺失值表示之一。

這是數據框現在的樣子:

item 和 measure 1 列具有整數值,但由于缺少值,它們已被向上轉換為浮點數。

在 Pandas 1.0 中,引入了整數類型缺失值表示 (),因此我們也可以在整數列中包含缺失值。 但是,我們需要顯式聲明數據類型。

盡管有缺失值,我們現在可以保留整數列。

現在我們有一個包含一些缺失值的數據框。 是時候看看處理它們的不同方法了。

1. 刪除有缺失值的行或列

一種選擇是刪除包含缺失值的行或列。

使用默認參數值,dropna 函數會刪除包含任何缺失值的行。數據框中只有一行沒有任何缺失值。同時我們還可以選擇使用軸參數刪除至少有一個缺失值的列。

2. 刪除只有缺失值的行或列

另一種情況是有一列或一行充滿缺失值。 這樣的列或行是無用的,所以我們可以刪除它們。

dropna 函數也可以用于此目的。 我們只需要改變 how 參數的值。

3. 根據閾值刪除行或列

基于“any”或“all”的刪除并不總是最好的選擇。 我們有時需要刪除具有“大量”或“一些”缺失值的行或列。

我們不能將這樣的表達式分配給 how 參數,但 Pandas 為我們提供了一種更準確的方法,即 thresh 參數。

例如,“thresh=4”意味著至少有 4 個非缺失值的行將被保留。 其他的將被丟棄。

我們的數據框有 6 列,因此將刪除具有 3 個或更多缺失值的行。

只有第三行有 2 個以上的缺失值,所以它是唯一一個被丟棄的。

4. 基于特定的列子集刪除

在刪除列時,我們可以只考慮部分列。

dropna 函數的子集參數用于此任務。 例如,我們可以刪除在度量 1 或度量 2 列中有缺失值的行,如下所示:

到目前為止,我們已經看到了根據缺失值刪除行或列的不同方法。放棄并不是唯一的選擇。 在某些情況下,我們可能會選擇填充缺失值而不是刪除它們。

事實上,填充可能是更好的選擇,因為數據意味著價值。 如何填補缺失值,當然取決于數據的結構和任務。

fillna 函數用于填充缺失值。

5. 填充一個常數值

我們可以選擇一個常量值來替代缺失值。如果我們只給 fillna 函數一個常量值,它將用該值替換數據框中的所有缺失值。

更合理的方法是為不同的列確定單獨的常量值。 我們可以將它們寫入字典并將其傳遞給 values 參數。

item 列中的缺失值替換為 1014,而 measure 1 列中的缺失值替換為 0。

6. 填充聚合值

另一種選擇是使用聚合值,例如平均值、中位數或眾數。

下面這行代碼用該列的平均值替換了第 2 列中的缺失值。

7. 替換為上一個或下一個值

可以用該列中的前一個或下一個值替換該列中的缺失值。在處理時間序列數據時,此方法可能會派上用場。 假設您有一個包含每日溫度測量值的數據框,但缺少一天的溫帶。 最佳解決方案是使用第二天或前一天的溫度。

fillna 函數的方法參數用于執(zhí)行此任務。

“bfill”向后填充缺失值,以便將它們替換為下一個值??纯醋詈笠粰?。 缺失值被替換到第一行。 這可能不適合某些情況。

值得慶幸的是,我們可以限制用這種方法替換的缺失值的數量。 如果我們將 limit 參數設置為 1,那么一個缺失值只能用它的下一個值替換。 后面的第二個或第三個值將不會用于替換。

8. 使用另一個數據框填充

我們還可以將另一個數據幀傳遞給 fillna 函數。 新數據框中的值將用于替換當前數據框中的缺失值。

將根據行索引和列名稱選擇值。 例如,如果 item 列的第二行中存在缺失值,則將使用新數據框中相同位置的值。

 

以上是具有相同列的兩個數據框。 第一個 沒有任何缺失值。

我們可以使用 fillna 函數如下:

df 中的值將替換為 df2 中關于列名和行索引的值。

總結

缺失將永遠存在于我們的生活中。 沒有最好的方法來處理它們,但我們可以通過應用準確合理的方法來降低它們的影響。我們已經介紹了 8 種不同的處理缺失值的方法,使用哪一個取決于數據和任務。

到此這篇關于Python處理缺失值的8種不同方法的文章就介紹到這了,更多相關Python處理缺失值內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python 實現得到當前時間偏移day天后的日期方法

    python 實現得到當前時間偏移day天后的日期方法

    今天小編就為大家分享一篇python 實現得到當前時間偏移day天后的日期方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 關于Python 的簡單柵格圖像邊界提取方法

    關于Python 的簡單柵格圖像邊界提取方法

    今天小編就為大家分享一篇關于Python 的簡單柵格圖像邊界提取方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python的in,is和id函數代碼實例

    Python的in,is和id函數代碼實例

    這篇文章主要介紹了python的in,is和id函數代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Python配置pip國內鏡像源的實現

    Python配置pip國內鏡像源的實現

    這篇文章主要介紹了Python配置pip國內鏡像源的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • Python實現批量修改Word文檔中圖片大小并居中對齊

    Python實現批量修改Word文檔中圖片大小并居中對齊

    這篇文章主要介紹了如何利用Python實現批量修改Word文檔中圖片大小并居中對齊,文中通過代碼示例給大家講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-08-08
  • Python使用GeekConcurrent實現量化編程

    Python使用GeekConcurrent實現量化編程

    這篇文章主要為大家詳細介紹了Python中的協程并發(fā)編程以及如何使用GeekConcurrent庫來實現面向量化編程,感興趣的小伙伴可以了解一下
    2025-02-02
  • 一文搞定FastAPI中的查詢參數

    一文搞定FastAPI中的查詢參數

    FastAPI中最核心的之一就是路徑參數,所以這篇文章小編主要來和大家介紹一下FastAPI查詢參數的作用以及基本使用,有需要的小伙伴可以參考下
    2024-03-03
  • Python中%d和%s的區(qū)別用法詳解

    Python中%d和%s的區(qū)別用法詳解

    這篇文章主要介紹了Python中%d和%s區(qū)別的相關資料,%d用于整數,%s用于字符串并支持多種類型轉換,文中通過代碼將區(qū)別介紹的非常詳細,需要的朋友可以參考下
    2025-06-06
  • 解決安裝pytorch因網速問題失敗的情況

    解決安裝pytorch因網速問題失敗的情況

    這篇文章主要介紹了解決安裝pytorch因網速問題失敗的情況,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Django框架模板介紹

    Django框架模板介紹

    今天小編就為大家分享一篇關于Django框架模板介紹,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評論