1. 程式人生 > >Python資料分析基礎(八)——時間序列

Python資料分析基礎(八)——時間序列

時間序列資料是一種重要的結構化資料形式。

datetime模組中的資料型別

型別 說明
date 以公曆形式儲存日曆日期(年、月、日)
time 將時間儲存為時、分、秒、毫秒
datetime 儲存日期和時間
timedelta 表示兩個datetime值之間的差(日、秒、毫秒)

datettime格式定義

程式碼 說明
%Y 4位數的年
%y 2位數的年
%m 2位數的月[01, 12]
%d 2位數的日[01, 31]
%H 時(24小時制)[00, 23]
%I 時(12小時制)[01, 12]
%M 2位數的分[00, 59]
%S 秒00, 61
%w 用整數表示的星期幾[0(星期天), 6]
%U 每年的第幾周[00, 53],星期天被認為是每週的第一天
%W 每年的第幾周[00, 53],星期一被認為是每週的第一天
%z 以+HHMM或-HHMM表示的UTC時區偏移量
%F %Y-%m-%d簡寫形式
%D %m/%d/%y簡寫形式

特定於當前環境的日期格式

程式碼 說明
%a 星期幾的簡寫
%A 星期幾的全稱
%b 月份的簡寫
%B 月份的全稱
%c 完整的日期和時間
%p 不同環境中的AM或PM
%x 適合於當前環境的日期格式
%X 適合於當前環境的時間格式

時間序列的基礎頻率

別名 偏移量型別 說明
D Day 每日日曆
B BusinessDay 每工作日
H Hour 每小時
T或min Minute 每分
S Second 每秒
L或ms Milli 每毫秒
U Micro 每微秒
M MonthEnd 每月最後一個日曆日
BM BusinessMonthEnd 每月最後一個工作日
MS MonthBegin 每月第一個日曆日
BMS BusinessMonthBegin 每月第一個工作日
W-MON、W-TUE Week 從指定的星期幾(MON、TUE、WED、THU、FRI、SAT、SUN)開始算起,每週
WOM-1MON、WOM-2MON WeekOfMonth 產生每月第一、第二、第三或第四周的星期幾
Q-JAN、Q-FEB QuarterEnd 對於以指定月份(JAN、FEB、MAR、APR、MAY、JUN、JUL、AUG、SEP、OCT、NOV、DEC)結束的年度,每季度最後一月的最後一個日曆日
BQ-JAN、BQ-FEB BusinessQuarterEnd 對於以指定月份結束的年度,每季度最後一月的最後一個工作日
QS-JAN、QS-FEB QuarterBeging 對於以指定月份結束的年度,每季度最後一月的第一個日曆日
BQS-JAN、BQS-FEB BusinessQuarterBegin 對於以指定月份結束的年度,每季度最後一月的第一個工作日
A-JAN、A-FEB YearEnd 每年指定月份的最後一個日曆日
BA-JAV、BA-FEB BusinessYearEnd 每年指定月份的最後一個工作日
AS-JAN、AS-FEB YearBegin 每年指定月份的第一個日曆日
BAS-JAV、BAS-FEB BusinessYearBegin 每年指定月份的第一個工作日

resample方法的引數

引數 說明
freq 表示重取樣頻率的字串或DateOffset,例如'M'、'5min'或Second(15)
how='mean' 用於產生聚合值的函式名或陣列函式,例如'mean'、'ohlc'、np.max等。預設為'mean',其他常用的值有:'first'、'last'、'median'、'ohlc'、'max'、'min'。
axis=0 重取樣的軸,預設為axis=0
fill_method=None 升取樣時如何插值,比如'ffill'或'bfill'。預設不插值
closed='right' 在降取樣中,各時間段的哪一端是閉合(即包含)的,'right'或'left',預設為'right'
label='right' 在降取樣中,如何設定聚合值的標籤,'right'或'left'(面元的右邊界或左邊界),預設為'right'
loffset=None 面元標籤的時間校正值,比如'-1s'/Second(-1)用於將聚合標籤調早1秒
limit=None 在前向或後向填充時,允許填充的最大時期數
kind=None 聚合到時期('period')或時間戳('timestamp'),預設聚合到時間序列的索引型別
convention=None 當重取樣時期時,將低頻率轉換到高頻率所採用的約定('start'或'end'),預設為'end'

移動視窗和指數加權函式

函式 說明
rolling_count 返回各視窗非NA觀測值的數量
rolling_sum 移動視窗的和
rolling_mean 移動視窗的平均數
rolling_median 移動視窗的中位數
rolling_var、rolling_std 移動視窗的方差和標準差。分母為n-1
rolling_skew、rolling_kurt 移到視窗的偏度(三階矩)和峰度(四階矩)
rolling_min、rolling_max 移動視窗的最小值和最大值
rolling_quantile 移動視窗指定百分位數/樣本分位數位置的值
rolling_corr、rolling_cov 移動視窗的相關係數和協方差
rolling_apply 對移動視窗應用普通陣列函式
ewma 指數加權移動平均
ewmvar、evmstd 指數加權移動方差和標準差
ewmcorr、ewmcov 指數加權移動相關係數和協方差

參考文獻:

利用Python進行資料分析.    Wes McKinney.    唐學韜譯