Pandas中的resample()是一個對正常時間序列資料重新采樣和頻率轉換的便捷的方法,可以對原樣本重新處理,其文法格式如下:
resample(rule,how=None,axis=0,fill_method=None,closed=None,label=None,convention="start",kind=None,loffset=None,limit=None,base=0,on=None,level=None)
部分參數含義如下:
- rule:表示重采樣頻率的字元串或DateOffset,比如M、5min等
- how:用于産生聚合值的函數名或函數數組,預設為None
- fill_method:表示升采樣時如何插值,可以取值為fill、bfill或None,預設為None
- closed:設定降采樣哪一端是閉合的,可以取值為right或left。若設為right,則表示劃分為左開右閉的區間;若設為left,則表示劃分為左閉右開的區間
- label:表示降采樣時設定聚合值的标簽
- convention:重采樣日期時,低頻轉高頻采用的約定,可以取值為start或end,預設為start
- limit:表示前向或後向填充時,允許填充的最大時期數
接下來通過代碼示範:
建立一個時間序列類型的Series對象,代碼如下:
import numpy as np
import pandas as pd
date_index=pd.date_range('2020-07-02',periods=30)
time_ser=pd.Series(np.arange(30),index=date_index)
time_ser
例子1:
time_ser.resample('W-MON',how='mean') #how參數不再建議使用
time_ser.resample('W-MON').mean() #時間戳索引為每周一,資料為每周求得的平均值
例子2 closed參數的使用:
time_ser.resample('W-MON',closed=None).mean() # closed參數表示設定哪一端是閉合的,right為左開右閉,left為左閉右開,預設為None
time_ser.resample('W-MON',closed='right').mean() # right 為左開右閉
time_ser.resample('W-MON',closed='left').mean() #left 為左閉右開