時(shí)間序列在很多的領(lǐng)域都是重要的結(jié)構(gòu)化數(shù)據(jù)形式,例如經(jīng)濟(jì)學(xué)忆畅、金融、生態(tài)學(xué)、物理學(xué)等冯乘,其特點(diǎn)是:
- 在多個(gè)時(shí)間點(diǎn)進(jìn)行了觀測(cè)
- 許多時(shí)間序列是固定頻率,即根據(jù)相同的規(guī)則定期出現(xiàn)
- 時(shí)間序列也可以是沒(méi)有規(guī)則的
時(shí)間序列的應(yīng)用
- 時(shí)間戳
- 固定的時(shí)間區(qū)間
- 時(shí)間間隔
筆記1:最廣泛和最簡(jiǎn)單的時(shí)間序列是時(shí)間戳引起的
處理時(shí)間的3
大模塊:
- datetime
- time
- calendar
下面??詳細(xì)介紹3大模塊的使用
calendar
日歷模塊calendar
中,常用的方法是
calendar
calendar(year,w=2,l=1,c=6):返回year年的日歷烫映,3個(gè)月一行族淮,間隔距離(每2個(gè)月的間隔孕荠,總共2個(gè)間隔)為c,每個(gè)寬度間隔w字符猴贰,每行長(zhǎng)度:21*w+18(3*6)+2*c
打印2020年完整日歷:
import calendar
year = calendar.calendar(2020)
print(year)
isleap(year)
判斷某個(gè)年份是否是閏年
leapdays(y1,y2)
返回兩個(gè)年份之間的閏年總數(shù),包含y1
填大,不包含y2
month(year,month,w=2,l=1)
返回的是year年month月的日歷百炬,兩行標(biāo)題圃验,一周一行(l=1)。每日間隔寬度為w字符,每行的寬度是7*w+6诈悍,l=1是每星期的行數(shù)
monthcalendar(year, month)
返回的是列表详拙,列表中的元素還是列表
- 每個(gè)子列表代表一個(gè)星期
- 從星期一到星期日涌矢,沒(méi)有本月的日期用0表示
對(duì)比
monthrange(year,month)
返回的是個(gè)元組惠猿,兩個(gè)數(shù)字:
- 第一個(gè):從星期幾開(kāi)始捐友,0代表星期1匣缘,6代表星期日
- 第二個(gè):該月共多少天
weekday(y,m,d)
輸入年月日,知道是星期幾
注意:返回值依然是從0-6對(duì)應(yīng)的是星期一到星期日
time
time
模塊的各種屬性方法總結(jié)如下:
time
time.time()
是獲取當(dāng)前的時(shí)間,準(zhǔn)確地說(shuō)是時(shí)間戳
筆記2:時(shí)間戳timestamp是指一連串的數(shù)據(jù)中加入文字绳姨,比如時(shí)間或者日期等狞甚,用以保證本地的數(shù)據(jù)更新和遠(yuǎn)程一致。
時(shí)間戳是以
1970-01-01 00:00:00
為起點(diǎn)
localtime
time.localtime
是打印當(dāng)前的時(shí)間熄浓,得到的結(jié)果是時(shí)間元組补君,具體含義:
序號(hào) | 屬性 | 值 |
---|---|---|
0 | tm_year | 2020 |
1 | tm_mon | 1 到 12 |
2 | tm_mday | 1 到 31 |
3 | tm_hour | 0 到 23 |
4 | tm_min | 0 到 59 |
5 | tm_sec | 0 到 61 (60或61 是閏秒) |
6 | tm_wday | 0到6 (0是周一) |
7 | tm_yday | 1 到 366(儒略歷) |
8 | tm_isdst | -1, 0, 1, -1是決定是否為夏令時(shí)的旗幟 |
time.localtime
的參數(shù)默認(rèn)是time.time()
的時(shí)間戳躲撰,可以自己輸入某個(gè)時(shí)間戳來(lái)獲取其對(duì)應(yīng)的時(shí)間
gmtime
localtime
得到的是本地時(shí)間创南,如果需要國(guó)際化,使用gmtime
格林威治標(biāo)準(zhǔn)時(shí)間:位于英國(guó)倫敦郊區(qū)的皇家格林威治天文臺(tái)的標(biāo)準(zhǔn)時(shí)間惫企,本初子午線經(jīng)過(guò)那里。
asctime
time.asctime的參數(shù)為空時(shí),默認(rèn)是以time.localtime的值為參數(shù)彼念,得到當(dāng)前的日期、時(shí)間浅萧、星期
ctime
獲取當(dāng)前時(shí)間信息逐沙,參數(shù)默認(rèn)是time.time()
的時(shí)間戳
mktime
mktime也是以時(shí)間元組為參數(shù),比如傳入localtime()的返回值洼畅;
方法返回的是時(shí)間戳格式吩案,類似localtime的逆過(guò)程
strftime
將時(shí)間元組按照指定的格式轉(zhuǎn)化成字符串,如果不指定時(shí)間元組帝簇,默認(rèn)是localtime
的值
python
中的時(shí)間日期格式:
格式 | 含義 | 取值范圍(樣式) |
---|---|---|
%y | 去掉世紀(jì)的年份 | 00-99徘郭,如“19” |
%Y | 完整的年份 | 如2019 |
%j | 指定日期是一年中的第幾天 | 范圍001-366 |
%m | 返回的是月份 | 范圍:01-12 |
%b | 本地簡(jiǎn)化月份的名稱 | 簡(jiǎn)寫的英文月份 |
%B | 本地完整月份的名稱 | 完整的英文月份 |
%d | 該月的第幾日 | 如,5月1日返回的是“01” |
%H | 第幾小時(shí)丧肴,24小時(shí)制 | 00-23 |
%l | 第幾小時(shí)残揉,12小時(shí)制 | 00-12 |
%M | 分鐘 | 00-59 |
%S | 秒 | 00-59 |
%U | 該年中的第幾個(gè)星期(周日為一周的起點(diǎn)) | 00-53 |
%W | 同上,周一為起點(diǎn) | 00-53 |
%w | 一個(gè)星期中的第幾天 | 0-6 |
%Z | 時(shí)區(qū) | 在大陸測(cè)試返回的是CST |
%x | 日期 | 日/月/年 |
%X | 時(shí)間 | 時(shí):分:秒 |
%c | 詳細(xì)日期時(shí)間 | 日/月/年時(shí):分:秒 |
%% | %字符 | '%'字符 |
%p | 上下午 | AM or PM |
strptime
strptime的作用是將字符串轉(zhuǎn)化成時(shí)間元組芋浮,有兩個(gè)參數(shù):
- 時(shí)間字符串抱环,比如“20/04/10”
- 時(shí)間字符換對(duì)應(yīng)的格式
datetime
datetime
模塊中常用的幾個(gè)類:
- date:日期類,常用屬性:year/month/day
- time:時(shí)間類纸巷,常用屬性:hour/minute/second/microsecond
- datetime:日期時(shí)間類
- timedelta:時(shí)間間隔
- tzinfo:時(shí)區(qū)類
date
不能直接使用datetime.date.year()
镇草,因?yàn)?code>year不是一個(gè)方法
時(shí)間戳與格式化時(shí)間的轉(zhuǎn)化:
time
time
類也要先生成time
對(duì)象才能使用
timedelta
datetime
對(duì)象屬性信息
datetime
中既保存了日期,也保存了細(xì)化到微秒的時(shí)間瘤旨。
字符串和datetime的轉(zhuǎn)換
通過(guò)使用str方法或者strftime()方法來(lái)對(duì)datetime對(duì)象和pandas中的timestamp對(duì)象進(jìn)行格式化
dateutil
第三方包dateutil
的parser.parse
梯啤。安裝pandas的時(shí)候自動(dòng)安裝