Pandas 中的時間序列數據

Pandas 中的時間序列數據

在本教程中,您將學習如何使用 Pandas 對時間序列數據進行重採樣。您可以在本博客底部觀看本教程的完整視頻

重採樣的想法是什麼?這與時間序列數據有關,我們要做的是更改報告該數據的頻率。例如,將每年的值更改為每月或每週,或將每小時的數據更改為每天。簡而言之,我們正在改變層次結構中的級別。

這可以用於多種原因,例如獲得更可靠的趨勢樣本大小季節性。在某些報告中,如果我們使用層次結構的某個級別而不是另一個級別會更有意義。

此外,如果您有不同的數據源並且需要執行時間序列數據的連接,則重採樣會有所幫助。這也有助於處理層次結構中的不匹配問題。

Pandas 中的時間序列數據

為了進一步分解,我們進行了下採樣和上採樣。

降採樣是為了減少報告的頻率。它可以是從一秒轉換為一小時以減少值或按月對季度進行縮減採樣。

另一方面,上採樣是將報告的頻率從月級別降低到天。我們稍後會有更多這樣的例子。

Pandas 中的時間序列數據

目錄

如何使用 Pandas 對時間序列數據進行重採樣

我們將如何在 Pandas 中執行此操作?

首先,我們將索引更改為我們的時間序列數據列。然後,我們可以使用插值進行上採樣,這將填充值,我們可以通過聚合值來進行下採樣以進行匯總。

Pandas 中的時間序列數據

讓我們轉到 Jupyter Notebook Python 並使用 Pandas 進行檢查。

首先,我們將通過輸入import pandas as pd來使用 Pandas ,然後輸入import seaborn as sns將其可視化,然後將 matplotlib.pyplot as plt 導入以自定義Seaborn 可視化。

接下來要做的是從 vega_datasets import data獲取數據。這是獲取示例源的好地方。此外,我們將獲得sp = data.sp500()sp.head() 庫

Pandas 中的時間序列數據

到目前為止,這是我們的數據。我們有每天的每日回報和價格。

Pandas 中的時間序列數據

要將索引設置為日期列,請鍵入sp.set_index(['date'], inplace=True)然後再次調用sp.head 。

Pandas 中的時間序列數據

使用上採樣獲取值

然後,為了獲得更多的價值,讓我們使用上採樣。由於我們有每天的數據,我們可以使用最簡單的函數 sp [['price']] 來精確到小時。resample ('H').ffill ( ),然後運行它。H代表小時,M代表月份,D代表日期,依此類推。您可以在Pandas 文檔中了解更多相關信息。

正如我們所見,1 月 1 日午夜,價格為 1394.46,與隨後的凌晨 1:00 至凌晨 4:00 的時間相同。又如1月2日,收盤價為1366.42。

Pandas 中的時間序列數據

即使該值在小時級別不可用,也有其他方法可以執行此操作。此外,還有比僅進行前向填充更複雜的方法。對於我們的示例,我們所做的是進行上採樣插值的基本方法。

接下來,讓我們通過輸入avg_month = sp [['price]].resample ('M').mean ( )avg_month.head ( )來進行下採樣,然後運行它進行檢查。

如圖所示,我們可以看到每個月的最後一天和平均價格。我們可以減少樣本以具有更少的值,或者我們稱之為縮減規模。

Pandas 中的時間序列數據

為了形象化這一點,讓我們重新繪製繪製的尺寸。然後是sns.lineplot。線圖在 X 軸較長的情況下效果更好,而 Y 值是平均每月價格。

要查看繪製的月份的平均價格,讓我們運行它。

Pandas 中的時間序列數據

同樣,我們有很多不同的方法可以做到這一點。例如,如果我們想知道每季度的最低價格,我們需要做的就是輸入quarter_low,然後輸入 quarter_low.head來運行它。

因此,我們現在可以看到每個季度的季度最低值。這就是您進行重採樣的方式。

Pandas 中的時間序列數據


使用 Pandas 中的插值方法MultiIndex
處理缺失數據
LuckyTemplates 中的 Python

結論

總而言之,Pandas 確實是為重採樣和時間序列數據而構建的。如果您正在處理時間序列數據並且具有不同的粒度,則重採樣會非常有用。

此外,請務必閱讀有關 resample 方法的 Pandas 文檔,以了解許多不同的方法來執行此操作。我們查看了基本的,但你可以做一些事情,比如每兩週一次、每月的最後一個工作日,以及更多的重採樣選項。

一切順利,

喬治山


什麼是 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 網關?所有你必須知道的