《利用Python進行資料分析》 11.6 重新取樣和頻率轉換(二)

weixin_34146805發表於2018-12-19

11.6 重新取樣和頻率轉換


11.6.2 向上取樣和插值


1.向上取樣:從低頻率轉換到高頻率,不需要聚合

示例:帶有每週資料的DataFrame(見圖11-1)

       當對這些資料使用聚合函式時,每一組只有一個值,並且會在間隙中產生缺失值。我們使用asfreq方法在不聚合的情況下轉換到高頻率。

15259227-dbd636ec328c7bd6.png
圖11-1:asfreq方法

2.fillna和reindex方法中可用的填充或插值方法可用於重取樣(見圖11-2)

15259227-2000ca7f182f7519.png
圖11-2:填充

:新的日期索引根本不需要與舊的索引重疊(見圖11-3)

15259227-9b3a9c2911dafe16.png
圖11-3:新的日期索引

11.6.3 使用區間進行重新取樣


1.以區間為索引的資料進行取樣與時間戳的情況類似,向下取樣(如圖11-4)

15259227-14f9aff82e418101.png
圖11-4:以區間為索引的資料進行取樣

2.向上取樣

向上取樣更為細緻,必須在重新取樣前決定新頻率中在時間段的哪一端放置數值,就像asfreq方法一樣。convention引數預設值是’start',但也可以是'end'。(見圖11-5)

15259227-cfaea7b1acab9742.png
圖11-5:向上取樣

3.由於區間涉及時間範圍,向上取樣和向下取樣就更為嚴格:

· 在向下取樣中,目標頻率必須是原頻率的子區間。

· 在向上取樣中,目標頻率必須是原頻率的父區間。

如果不滿足這些規則,將會引起異常。這主要會影響每季度、每年和每週的頻率。例如,根據Q-MAR定義的時間範圍將只和A-MAR、A-JUN、A-SEP和A-DEC保持一致(見圖11-6)

15259227-60893e963b22376a.png
圖11-6:Q-MAR定義的時間範圍

相關文章