Python資料分析基礎(八)——時間序列
阿新 • • 發佈:2019-02-06
時間序列資料是一種重要的結構化資料形式。
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. 唐學韜譯