在講pandas時間序列函數之前,我大概介紹下什麼是時間序列(time series)。時間序列(time series)簡單的說就是各時間點上形成的數值序列,時間序列(time series)分析就是通過觀察歷史數據預測未來的值。比如股票預測、房價預測分析等。本篇文章主要詳細講解生成時間索引的函數date_range及延伸函數。
pandas.date_range
pandas.date_range()這個函數主要是返回固定頻率的時間索引,參數比較多,下面我們依次演示常用的參數用法。
根據指定的起止時間,生成時間序列import pandas as pdpd.date_range(start='2019-1-09', end='2019-1-31')
根據起止時間,並指定時間序列數量pd.date_range(start='2019-1-09', end='2019-1-10',periods=10)
根據開始時間和指定數量生成pd.date_range(start='2019-1-09',periods=10)
根據指定的頻率生成時間點pd.date_range(start='2019-1-09',periods=10,freq='H')
比較上面可以看出,date_range中默認以天為頻率,如果我們需要其他單位的頻率必須用freq這個參數指定,並且可以是基礎頻率的倍數,如下:
pd.date_range(start='2019-1-09',periods=10,freq='12H')
這裡可選的頻率有很多,大家在使用的時候查看官方文檔即可,這裡不在一一舉例,附一張官方文檔中的圖。
根據closed參數選擇是否包含開始和結束時間,left包含開始時間,不包含結束時間,right與之相反。pd.date_range(start='2019-01-09', end='2019-01-14', closed=None)pd.date_range(start='2019-01-09', end='2019-01-14', closed='left')pd.date_range(start='2019-01-09', end='2019-01-14', closed='right')
時間序列作為索引並根據索引取值
truncate過濾
time.truncate(before='2019-01-12')
可以看到truncate這個函數將before指定日期之前的值全部過濾出去。既然有before,那麼就有after,如下:
time.truncate(after='2019-01-12')
pandas.Timestamp
這個類主要是用來生成時間戳的,如下:
pd.Timestamp('2019-01-10')
pandas.Timedelta
pd.Timedelta('2day')
pd.Timestamp('2019-01-10')+pd.Timedelta('2day')