Pandas 日期函數(shù)操作實(shí)例
擴(kuò)展時(shí)間序列,日期功能在財(cái)務(wù)數(shù)據(jù)分析中起著重要作用。使用日期數(shù)據(jù)時(shí),我們經(jīng)常會(huì)遇到以下情況-
生成日期序列 將日期序列轉(zhuǎn)換為不同的頻率
通過指定日期和頻率使用date.range()函數(shù),我們可以創(chuàng)建日期序列。默認(rèn)情況下,范圍的頻率為天。
import pandas as pd print(pd.date_range('1/1/2011', periods=5))
運(yùn)行結(jié)果如下:
DatetimeIndex(['2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04', '2011-01-05'],dtype='datetime64[ns]', freq='D')
import pandas as pd print(pd.date_range('1/1/2011', periods=5,freq='M'))
運(yùn)行結(jié)果如下:
DatetimeIndex(['2011-01-31', '2011-02-28', '2011-03-31', '2011-04-30', '2011-05-31'],dtype='datetime64[ns]', freq='M')
bdate_range()代表營業(yè)日期范圍。與date_range()不同,它不包括星期六和星期日。
import pandas as pd print(pd.date_range('1/1/2011', periods=5))
運(yùn)行結(jié)果如下:
DatetimeIndex(['2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04', '2011-01-05'], dtype='datetime64[ns]', freq='D')
請(qǐng)注意,3月3日之后,日期跳至3月6日(不包括4日和5日)。只需檢查日歷中的日期即可。
諸如date_range和bdate_range之類的便利功能利用了多種頻率別名。date_range的默認(rèn)頻率是日歷日,而bdate_range的默認(rèn)頻率是工作日。
import pandas as pd start = pd.datetime(2011, 1, 1) end = pd.datetime(2011, 1, 5) print(pd.date_range(start, end))
運(yùn)行結(jié)果如下:
DatetimeIndex(['2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04', '2011-01-05'], dtype='datetime64[ns]', freq='D')
為有用的通用時(shí)間序列頻率提供了許多字符串別名。我們將這些別名稱為偏移別名。
別名 | 描述 | 別名 | 描述 |
B | 工作日頻率 | BQS | 業(yè)務(wù)季度開始頻率 |
D | 日歷日頻率 | A | 年度(年)結(jié)束頻率 |
W | 每周頻率 | BA | 營業(yè)年度結(jié)束頻率 |
M | 月末頻率 | BAS | 營業(yè)年度開始頻率 |
SM | 半月結(jié)束頻率 | BH | 營業(yè)時(shí)間頻率 |
BM | 營業(yè)月結(jié)束頻率 | H | 每小時(shí)頻率 |
MS | 月開始頻率 | T, min | 分鐘頻率 |
SMS | 信息半個(gè)月開始頻率 | S | 其次頻率 |
BMS | 工作月開始頻率 | L, ms | 毫秒 |
Q | 四分之一結(jié)束頻率 | U, us | 微秒 |
BQ | 業(yè)務(wù)季度結(jié)束頻率 | N | 納秒 |
QS | 季度開始頻率 |