前言
時間序列(time series)數據都是一種重要的結構化數據形式。
時間序列數據的意義取決於具體應用場景,主要有一下幾種:
時間戳(timestamp),特定的時刻。固定時期(period),如2007年1月或2010年全年。時間間隔(interval),由起始和結束時間戳表示。時期(period)可以被看做間隔(interval)的特例。實驗或過程時間,每個時間點都是相對於特定起始時間的一個度量。例如,從放入烤箱起,每秒鐘餅乾的直徑。Pandas提供了一組標準的時間序列處理工具和數據算法。因此,可以高效處理非常大的時間序列,輕鬆地進行切片/切塊、聚合、對定期/不定期的時間序列進行重採樣等。
日期和時間數據類型及工具
Python標準庫包含用於日期(date)和時間(time)數據的數據類型,而且還有日曆方面的功能。主要用到datetime、time以及calendar模塊。datetime.datetime(也可以簡寫為datetime)是用得最多的數據類型:
In [97]: from datetime import datetime
In [98]: now=datetime.now()
In [99]: now
Out[99]: datetime.datetime(2018, 9, 16, 11, 2, 28, 854799)
In [100]: now.year,now.month,now.day
Out[100]: (2018, 9, 16)
In [6]: now.year
Out[6]: 2019
In [7]: now.month
Out[7]: 7
In [8]: now.day
Out[8]: 14
datetime以毫秒形式存儲日期和時間。
datetime.timedelta:時間差表示兩個datetime對象之間的時間差:
In [101]: delta=datetime(2011,1,7)-datetime(2008,6,24,8,15)
In [102]: delta
Out[102]: datetime.timedelta(926, 56700)
In [103]: delta.days
Out[103]: 926
In [104]: delta.seconds
Out[104]: 56700
使用timedelta生成新對象可以給datetime對象加上(或減去)一個或多個timedelta,這樣會產生一個新對象:
In [107]: from datetime import timedelta
In [108]: start=datetime(2011,1,7)
In [109]: start + timedelta(12)
Out[109]: datetime.datetime(2011, 1, 19, 0, 0)
In [110]: start - 2*timedelta(12)
Out[110]: datetime.datetime(2010, 12, 14, 0, 0)
Datatime模塊中的數據類型date:以公曆形式存儲日曆日期(年、月、日)
time:將時間存儲為時、分、秒、毫秒
datetime:存儲日期和時間
timedelta:表示兩個datetime值之間的差(日、秒、毫秒)
總的來說,時間序列在數據處理與分析中是極為重要的數據存在形式,也會經常遇到該類型數據的工作,通過python對其進行相應的操作,方便且快捷,可復用性很強。
「親,如果筆記對您有幫助,收藏的同時,記得給點個讚、加個關注哦!感謝!」
「文中代碼均親測過,若有錯誤之處,歡迎批評指正,一起學習,一起成長!」