這篇文章將為大家詳細講解有關(guān)如何使用python時間序列按頻率生成日期,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
目前創(chuàng)新互聯(lián)公司已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站改版維護、企業(yè)網(wǎng)站設(shè)計、海寧網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。1.生成指定開始日期和結(jié)束日期的時間范圍:
In:import pandas as pd index = pd.date_range('4/1/2019','5/1/2019') print(index) Out: DatetimeIndex(['2019-04-01', '2019-04-02', '2019-04-03', '2019-04-04', '2019-04-05', '2019-04-06', '2019-04-07', '2019-04-08', '2019-04-09', '2019-04-10', '2019-04-11', '2019-04-12', '2019-04-13', '2019-04-14', '2019-04-15', '2019-04-16', '2019-04-17', '2019-04-18', '2019-04-19', '2019-04-20', '2019-04-21', '2019-04-22', '2019-04-23', '2019-04-24', '2019-04-25', '2019-04-26', '2019-04-27', '2019-04-28', '2019-04-29', '2019-04-30', '2019-05-01'], dtype='datetime64[ns]', freq='D')
也可以只指定開始日期或結(jié)束日期,但這時必須要輸入一個時間長度,并且指定輸入的是開始時間還是結(jié)束時間,如果不指定默認是開始時間。
date_range(startdate/enddate,periods)
In:print(pd.date_range(start = '4/1/2019',periods = 10)) Out:DatetimeIndex(['2019-04-01', '2019-04-02', '2019-04-03', '2019-04-04', '2019-04-05', '2019-04-06', '2019-04-07', '2019-04-08', '2019-04-09', '2019-04-10'], dtype='datetime64[ns]', freq='D') In:print(pd.date_range(start = '5/1/2019',periods = 10)) Out:DatetimeIndex(['2019-05-01', '2019-05-02', '2019-05-03', '2019-05-04', '2019-05-05', '2019-05-06', '2019-05-07', '2019-05-08', '2019-05-09', '2019-05-10'], dtype='datetime64[ns]', freq='D')
現(xiàn)在我們已經(jīng)知道怎么生成日期范圍了,但是上面我們生成的日期的時間間隔都是天,接下來告訴大家怎么生成其他時間頻率的日期范圍。
要生成按某個頻率計算的日期范圍,只需要在date_range后加上freq就可以了。比如,生成每小時間隔的時間:
In:print(pd.date_range(start = '5/1/2019',periods = 10,freq = 'h')) Out:DatetimeIndex(['2019-05-01 00:00:00', '2019-05-01 01:00:00', '2019-05-01 02:00:00', '2019-05-01 03:00:00', '2019-05-01 04:00:00', '2019-05-01 05:00:00', '2019-05-01 06:00:00', '2019-05-01 07:00:00', '2019-05-01 08:00:00', '2019-05-01 09:00:00'], dtype='datetime64[ns]', freq='H')
生成時間間隔為3個小時的時間:
In:print(pd.date_range(start = '5/1/2019',periods = 10,freq = '3h')) Out:DatetimeIndex(['2019-05-01 00:00:00', '2019-05-01 01:00:00', '2019-05-01 02:00:00', '2019-05-01 03:00:00', '2019-05-01 04:00:00', '2019-05-01 05:00:00', '2019-05-01 06:00:00', '2019-05-01 07:00:00', '2019-05-01 08:00:00', '2019-05-01 09:00:00'], dtype='datetime64[ns]', freq='H')
生成時間間隔為1小時30分的時間:
In:print(pd.date_range(start = '5/1/2019',periods = 10,freq = '1h40min')) Out:DatetimeIndex(['2019-05-01 00:00:00', '2019-05-01 01:30:00', '2019-05-01 03:00:00', '2019-05-01 04:30:00', '2019-05-01 06:00:00', '2019-05-01 07:30:00', '2019-05-01 09:00:00', '2019-05-01 10:30:00', '2019-05-01 12:00:00', '2019-05-01 13:30:00'], dtype='datetime64[ns]', freq='90T')
python還可以生成其他不規(guī)則頻率的時間,比如每月的第一個工作日,每月的第一個日歷日等
生成每月的第一個工作日:
In:print(pd.date_range(start = '1/1/2019',periods = 12,freq = 'BMS')) Out:DatetimeIndex(['2019-01-01', '2019-02-01', '2019-03-01', '2019-04-01', '2019-05-01', '2019-06-03', '2019-07-01', '2019-08-01', '2019-09-02', '2019-10-01', '2019-11-01', '2019-12-02'], dtype='datetime64[ns]', freq='BMS')
生成每月的第一個日歷日:
In:print(pd.date_range(start = '1/1/2019',periods = 12,freq = 'MS')) Out:DatetimeIndex(['2019-01-01', '2019-02-01', '2019-03-01', '2019-04-01', '2019-05-01', '2019-06-01', '2019-07-01', '2019-08-01', '2019-09-01', '2019-10-01', '2019-11-01', '2019-12-01'], dtype='datetime64[ns]', freq='MS')
有一種很實用的頻率類,為“WOM”,即每月的幾個星期幾。比如每月的第三個星期五。如果我們每月的第三個星期五發(fā)工資,這樣就可以很方便的知道今年每個月的工資日了。
In:print(pd.date_range(start = '1/1/2019',periods = 12,freq = 'WOM-3FRI')) Out:DatetimeIndex(['2019-01-18', '2019-02-15', '2019-03-15', '2019-04-19', '2019-05-17', '2019-06-21', '2019-07-19', '2019-08-16', '2019-09-20', '2019-10-18', '2019-11-15', '2019-12-20'], dtype='datetime64[ns]', freq='WOM-3FRI')
下面是python可使用的時間序列的基礎(chǔ)頻率表:
別名 | 偏移量類型 | 說明 |
---|---|---|
D | Day | 每日歷日 |
B | BusinessDay | 每工作日 |
H | Hour | 每小時 |
T或min | Minute | 每分鐘 |
S | Second | 每秒 |
L或ms | Milli | 每毫秒 |
U | Micro | 每微秒 |
M | MonthEnd | 每月最后一個日歷日 |
BM | BusinessMonthEnd | 每月最后一個工作日 |
MS | MonthBegin | 每月第一個日歷日 |
BMS | BusinessMonthBegin | 每月第一個工作日 |
W-MON、W-TUE | Week | 每周的星期幾 |
WOM-1MON、WOM-2MON | WeekofMonth | 每月第幾周的星期幾 |
Q-JAN、Q-FEB | QuarterEnd | 每個季度對應(yīng)的該月份的最后一個日歷日 |
BQ-JAN、BQ-FEB | BusinessQuarterEnd | 每個季度對應(yīng)的該月份的最后一個工作日 |
QS-JAN、QS-FEB | QuarterBegin | 每個季度對應(yīng)的該月份的第一個日歷日 |
BQS-JAN、BQS-FEB | QuarterBegin | 每個季度對應(yīng)的該月份的第一個工作日 |
A-JAN、B-FEB | YearEnd | 每年指定月份的最后一個日歷日 |
BA-JAN、BA-FEB | BusinessYearEnd | 每年指定月份的最后一個工作日 |
AS-JAN、AS-FEB | YearBegin | 每年指定月份的第一個日歷日 |
BAS-JAN、BAS-FEB | BusinessYearBegin | 每年指定月份的第一個工作日 |
關(guān)于“如何使用python時間序列按頻率生成日期”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。