使用插值法在 Python 中處理缺失數據

使用插值法在 Python 中處理缺失數據

插值是一種在給定點之間生成點的方法。在本教程中,我將展示如何使用插值法在 Python 中處理缺失數據。您可以在本博客底部觀看本教程的完整視頻。

在 Python 中,插值是一種主要用於在預處理數據時估算數據框或系列中缺失值的技術。我將演示如何使用此方法在 LuckyTemplates 中使用Python來估計數據中缺失的數據點。

如果我們查看下面顯示在頂部圖表中的原始數據,我們可以看到有很多我們無法繪製的漏洞或缺失數據,因為那裡什麼都沒有。但是在底部的圖表中,我們可以看到我們已經做了一些估計來弄清楚數據的樣子。實際數據以淺藍色表示,而插值數據以深藍色表示。

使用插值法在 Python 中處理缺失數據

我們要做幾種不同類型的估計。我們將進行線性插值、最近插值,然後進行加權時間插值。每一個都會給我們略有不同的結果。

上面的示例使用了加權時間插值,它看起來與線性插值幾乎相同,只是它是根據天數加權的。Linear 根據這兩個數據點之間的斜率估計數據。Nearest Interpolation 具有更平坦的估計類型,如下所示,我們查看了最接近的值並能夠估計這兩者之間存在的值。

使用插值法在 Python 中處理缺失數據

所以,讓我們跳到 Jupyter notebook 並將其引入。

目錄

如何在 Python 中使用插值處理缺失數據

您可以使用腳本編輯器將所有內容編寫成腳本,但這更容易。您會在 Jupyter notebook 中獲得更多反饋。所以,讓我們記錄我們正在做的事情。當我們將它複製並粘貼到我們的 Python 腳本編輯器時,它會非常乾淨和清晰。

讓我們導入我們想要的庫,我們將導入Pandas並將它們保存為變量 PD。我們將導入Numpy並將其保存為變量 NP。Pandas 是一個數據操作庫,而 Numpy 也允許我們進行數據操作並為我們提供一些線性代數。

我們想引入我們的數據集,並將其保存為變量df。我們將只使用 Pandas 變量 ( pd ) 並使用read.csv函數。然後,我們將復制並粘貼該文件在我們 PC 上的位置。我的在我的工作目錄中,所以我需要做的就是編寫machines.csv並將其封裝在括號中。

使用插值法在 Python 中處理缺失數據

讓我們通過使用變量 df 來查看我們的數據集。您可以看到從 2022 年 1 日開始,一直到 25 日。一直到15號是連續幾天,然後19號少了4天,到22號少了3天,25號少了2天。

跳過的日子不是缺失數據。那不是我們數據集中的數據。我們要處理的是缺失數據,您看到這些數據用這些NaN或無值表示。

現在我們有了數據集,讓我們使用不同類型的解釋並將它們保存為不同的列。我們可以看到我們有object,它由一個文本表示,我們也有一個float 。

使用插值法在 Python 中處理缺失數據

我將使用方括號表示法隔離日期列。然後,我將使用 equals 來分配它。我將使用pd變量,然後只使用函數 to_datetime。然後,我將用括號關閉該函數並添加到日期列中。

使用插值法在 Python 中處理缺失數據

我們可以看到,現在我們將 Date 作為正確的數據類型。

使用插值法在 Python 中處理缺失數據

我們這裡有一個索引,用數字 1 到 18 表示。當我們做線性時,它將使用這些數字在現有數據點之間創建線性連接。但我們也希望能夠使用時間加權插值,它查看時間並根據實際天數為我們提供結果。我們想將 Date 列設置為索引,以便我們可以使用它。

我將使用我的數據框 (df) 變量,並執行 set_index。我們需要傳入一個名為inplace的參數,以確保它永久傳入。因此,我將使用 inplace equals true,然後我將按下 shift 鍵並回車。這樣,您可以看到數字索引消失了,我們有一個日期時間索引。

使用插值法在 Python 中處理缺失數據

現在,我們可以開始構建我們想要的那些列。讓我們構建一個列,在其中插值最近的數據點,這將用最近的值填充這些缺失值。我們想創建一個名為users_nearest的列,我們想將其分配給一個Users列。

我們想創建一個名為user_nearest的列,我們想將其分配給一個用戶列。現在我們已經隔離了該列,我們可以使用插值 函數,我們可以按 shift-tab 鍵查看此函數採用的參數。有許多不同類型的方法。

你可以看到默認是線性的,如果你想讓它看到所有不同的方法,這裡有信息。你可以一直打開它,這裡有很多信息,可以讓你有很多洞察力。但最好還是去 Pandas 網站看看所有不同類型的插值是什麼。

使用插值法在 Python 中處理缺失數據

現在我們要傳入我們想要的方法,我們將使用最近插值法。我們所要做的就是運行它,您可以看到創建了一個列。如果我們查看該特定行,我們可以將其視為缺失值。您可以看到它已在取最接近值的位置進行插值並添加到此處。如您所見,該特定行不再有缺失值。

使用插值法在 Python 中處理缺失數據

現在,讓我們將其複制兩次,並將這些列的名稱更改為user_linearuser_time。我們還將更改方法以匹配我們的標題。我們可以shift和enter,可以看到我們根據不同類型的插值方式創建了三列。

使用插值法在 Python 中處理缺失數據

接下來,我想創建一個更特殊的列,允許我們指示其中哪些是空的,就像我們數據中的標誌一樣。我們將為此使用 Numpy。

因此,我們將創建一個名為df的新列,然後將其命名為 flag。我們將用那個等號分配它。然後,我們將使用np,這是我們的 Numpy 變量。然後,我們將使用where函數,這是一個條件函數。我們設置了條件,然後我們得到了真假的例子。我們使用雙等號,這在 Python 中是相等的。當它為真時,我們想說Missing Data。另一個選項是Data

使用插值法在 Python 中處理缺失數據

我們可以在視覺中使用該標誌。一旦我們進入你的筆記本,轉到轉換,然後點擊運行 Python 腳本。現在有幾個不同的步驟。我們需要讓它在LuckyTemplates環境中運行。

我們所有的代碼都在這裡,我們需要添加更多的步驟。第一,當我們處理日期時間時,我們需要添加一個錯誤參數,表示如果我們有任何錯誤,您可以強製或嘗試更改它。所以,我將把errors equal放在這裡,然後是括號coerce。接下來,我們需要將數據集變量重新分配為 df。

使用插值法在 Python 中處理缺失數據

當我們點擊 OKAY 時,我們會得到另一個錯誤,這就是我們需要做的來解決這個問題。如果我們檢查我們的步驟,我們不需要格式化我們的日期。我們將讓 Python 處理日期,因為每個平台的日期都是唯一的。我們需要做的第一件事是擺脫Changed Type

使用插值法在 Python 中處理缺失數據

我們沒有日期列,因為日期是索引。所以,我們回到我們的 Python 腳本,然後我們只是重置我們的索引,df.reset_index。我們說我們想將其重置為該括號中的 Date 列旁路,然後我們想執行inplace = true

使用插值法在 Python 中處理缺失數據

現在,我們有了日期,所有其他數據類型都已完成。

使用插值法在 Python 中處理缺失數據

如果我們把它放在一個視覺中,這就是它在 Python 中處理缺失數據的三種不同插值方法中的樣子。

使用插值法在 Python 中處理缺失數據


LuckyTemplates 中的貨幣匯率:處理缺失數據
LuckyTemplates 數據報告中的 Python
腳本 如何在 Python 中加載示例數據集

結論

您在本教程中學習了在Python中處理缺失數據的三種插值方法。我們已經討論了線性、最近和加權時間插值方法。

我希望你覺得這很有用,並將其應用到你自己的工作中。您可以觀看下面的完整視頻教程以獲取更多詳細信息,並查看下面的鏈接以獲取有關在 Python 中處理缺失數據的更多相關內容。

一切順利!

蓋林


什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

如何在 R 中保存和加載 RDS 文件

如何在 R 中保存和加載 RDS 文件

您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。

回顧前 N 個工作日——DAX 編碼語言解決方案

回顧前 N 個工作日——DAX 編碼語言解決方案

在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。

DAX Studio 中數據緩存的物化想法

DAX Studio 中數據緩存的物化想法

本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。

使用 LuckyTemplates 進行業務報告

使用 LuckyTemplates 進行業務報告

如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的