時間序列(time series)資料是一種重要的結構化資料形式,在多個時間點觀察或測量到得任何事物都可以形成一段時間序列,很多時間序列是固定頻率的。也就是說,資料點是根據某種規律定期出現的(比如15s、5min、1month)。時間序列也可以是不定期的。
時間序列的意義取決於具體的應用場景,主要有以下幾種:
pandas提供了一組標準的時間序列處理工具和資料演算法。
python標準庫包含用於日期(date)和時間(time)資料的資料型別,以及日曆方面的功能。
主要用到datetime、time以及calendar模組。
datetime庫官方說明:datetime --- 基本日期和時間型別 — python 3.10.0 文件
約定:from datetime import datetime
1 >>> from datetime import datetime
2 >>> now = datetime.now()
3 >>> now
4 datetime.datetime(2020, 2, 5, 10, 58, 59, 339099)
5 >>> now.year, now.month, now.day
6 (2020, 2, 5)
datetime以毫秒形式儲存日期和時間,datetime.timedelta表示兩個datetime物件之間的時間差:
1 >>> delta = datetime(2011, 1, 7) - datetime(2011, 1, 6)
2 >>> delta.days
3 14 >>> delta.seconds
5 06 >>>
可以給datetime物件加上(或減去)乙個或多個timedelta。
timedelta官方說明:datetime --- 基本日期和時間型別 — python 3.9.9 文件
1 >>> from datetime import timedelta
2 >>> start = datetime(2011, 1, 7)
3 >>> start + timedelta(12)
4 datetime.datetime(2011, 1, 19, 0, 0)
5 >>> start - 2 * timedelta(12)
6 datetime.datetime(2010, 12, 14, 0, 0)
datetime模組中的資料型別如下表所示:
型別說明
date
以公曆形式儲存日曆日期(年、月、日)
time
將時間儲存為時、分、秒、毫秒
datetime
儲存日期和時間
timedelta
表示兩個datetime值之間的差(日、秒、毫秒)
利用str或strftime方法(傳入乙個格式化字串),datetime物件和pandas的timestamp物件可以被格式化為字串。
1 >>> stamp = datetime(2020, 2, 5)
2 >>> str(stamp)
3 '2020-02-05 00:00:00'
4 >>> stamp.strftime('%y-%m-%d')
5 '2020-02-05'
下表是全部的格式化編碼,datatime.strptime可以用這些格式化編碼將字串轉換為日期:
**說明
%y4位數的年
%y2位數的年
%m2位數的月[01, 12]
%d2位數的日[01, 31]
%h時(24小時制)[00, 23]
%時(12小時制)[01, 12]
%m2位數的分[00, 59]
%s秒[00, 60](秒60和61用於閏秒)
%w用整數表示的星期幾[0(星期天), 6]
%u每年的第幾周[00, 53],星期天被認為是每週的第一天,每年第乙個星期天之前的那幾天被認為是「第0周」。
%w每年的第幾周[00, 53],星期一被認為是每週的第一天,每年第乙個星期一之前的那幾天被認為是「第0周」
%z以+hhmm或-hhmm表示的utc時區偏移量,如果時區為naïve,則返回空字串
%f%y-%m-%d簡寫形式,例如2012-4-18
%d%m/%d/%y簡寫形式,例如04/18/12
datetime物件還有一些特定於當前環境(位於不同國家或不同語言的系統)的格式化選項。如下表所示:
**說明
%a星期幾的簡寫
%a星期幾的全稱
%b月份的簡寫
%b月份的全稱
%c完整的日期和時間,例如「tue 01 may 2012 04:20:57 pm」
%p不同環境中的am或pm
%x適合於當前環境的日期格式
%x適用於當前環境的時間格式
日期和時間資料型別
日期和時間資料型別包括 datetime 和smalldatetime 兩種型別 日期和時間資料型別由有效的日期和時間組成。例如,有效的日期和時間資料報括 4 01 98 12 15 00 00 00 pm 和 1 28 29 15 01am 8 17 98 前乙個資料型別是日期在前,時間在後乙個資...
MySQL資料型別 日期時間
日談健康 2017 01 18 00 31 一 部落格前言 自接觸學習mysql已有一段時間了,對於mysql的基礎知識還是有一定的了解的。在這一路學習過來,每次不管看書還是網上看的資料,對於mysql資料型別中的時間日期型別總是一掃而過,不曾停下來認認真真的研究學習。最近在圖書館借了一本關於mys...
MySQL資料型別 日期時間
mysql中有多種表示時間日期的資料型別,主要有year time date datetime timestamp等。每一種資料型別都有儲存的時間日期格式 以及取值範圍,因此在使用時間日期資料型別的時候需要選取最佳的資料型別。下圖列出了幾種資料型別 year用於儲存年,儲存時只需要乙個位元組,插入資...