python時(shí)間序列按頻率生成日期的方法
有時(shí)候我們的數(shù)據(jù)是按某個(gè)頻率收集的,比如每日、每月、每15分鐘,那么我們?cè)趺串a(chǎn)生對(duì)應(yīng)頻率的索引呢?pandas中的date_range可用于生成指定長(zhǎng)度的DatetimeIndex。
我們先看一下怎么生成日期范圍:pd.date_range(startdate,enddate)
1.生成指定開(kāi)始日期和結(jié)束日期的時(shí)間范圍:
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')
也可以只指定開(kāi)始日期或結(jié)束日期,但這時(shí)必須要輸入一個(gè)時(shí)間長(zhǎng)度,并且指定輸入的是開(kāi)始時(shí)間還是結(jié)束時(shí)間,如果不指定默認(rèn)是開(kāi)始時(shí)間。
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)知道怎么生成日期范圍了,但是上面我們生成的日期的時(shí)間間隔都是天,接下來(lái)告訴大家怎么生成其他時(shí)間頻率的日期范圍。
要生成按某個(gè)頻率計(jì)算的日期范圍,只需要在date_range后加上freq就可以了。比如,生成每小時(shí)間隔的時(shí)間:
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')
生成時(shí)間間隔為3個(gè)小時(shí)的時(shí)間:
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')
生成時(shí)間間隔為1小時(shí)30分的時(shí)間:
In:print(pd.date_range(start = '5/1/2019',periods = 10,freq = '1h30min'))
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ī)則頻率的時(shí)間,比如每月的第一個(gè)工作日,每月的第一個(gè)日歷日等
生成每月的第一個(gè)工作日:
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')
生成每月的第一個(gè)日歷日:
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')
有一種很實(shí)用的頻率類,為“WOM”,即每月的幾個(gè)星期幾。比如每月的第三個(gè)星期五。如果我們每月的第三個(gè)星期五發(fā)工資,這樣就可以很方便的知道今年每個(gè)月的工資日了。
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可使用的時(shí)間序列的基礎(chǔ)頻率表:
| 別名 | 偏移量類型 | 說(shuō)明 |
|---|---|---|
| D | Day | 每日歷日 |
| B | BusinessDay | 每工作日 |
| H | Hour | 每小時(shí) |
| T或min | Minute | 每分鐘 |
| S | Second | 每秒 |
| L或ms | Milli | 每毫秒 |
| U | Micro | 每微秒 |
| M | MonthEnd | 每月最后一個(gè)日歷日 |
| BM | BusinessMonthEnd | 每月最后一個(gè)工作日 |
| MS | MonthBegin | 每月第一個(gè)日歷日 |
| BMS | BusinessMonthBegin | 每月第一個(gè)工作日 |
| W-MON、W-TUE | Week | 每周的星期幾 |
| WOM-1MON、WOM-2MON | WeekofMonth | 每月第幾周的星期幾 |
| Q-JAN、Q-FEB | QuarterEnd | 每個(gè)季度對(duì)應(yīng)的該月份的最后一個(gè)日歷日 |
| BQ-JAN、BQ-FEB | BusinessQuarterEnd | 每個(gè)季度對(duì)應(yīng)的該月份的最后一個(gè)工作日 |
| QS-JAN、QS-FEB | QuarterBegin | 每個(gè)季度對(duì)應(yīng)的該月份的第一個(gè)日歷日 |
| BQS-JAN、BQS-FEB | QuarterBegin | 每個(gè)季度對(duì)應(yīng)的該月份的第一個(gè)工作日 |
| A-JAN、B-FEB | YearEnd | 每年指定月份的最后一個(gè)日歷日 |
| BA-JAN、BA-FEB | BusinessYearEnd | 每年指定月份的最后一個(gè)工作日 |
| AS-JAN、AS-FEB | YearBegin | 每年指定月份的第一個(gè)日歷日 |
| BAS-JAN、BAS-FEB | BusinessYearBegin | 每年指定月份的第一個(gè)工作日 |
以上所述是小編給大家介紹的python時(shí)間序列按頻率生成日期的方法詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- python時(shí)間序列數(shù)據(jù)轉(zhuǎn)為timestamp格式的方法
- python實(shí)現(xiàn)時(shí)間序列自相關(guān)圖(acf)、偏自相關(guān)圖(pacf)教程
- 利用python實(shí)現(xiàn)平穩(wěn)時(shí)間序列的建模方式
- 使用python實(shí)現(xiàn)時(shí)間序列白噪聲檢驗(yàn)方式
- Python如何根據(jù)時(shí)間序列數(shù)據(jù)作圖
- 詳解用Python進(jìn)行時(shí)間序列預(yù)測(cè)的7種方法
- Python實(shí)現(xiàn)時(shí)間序列可視化的方法
- python pandas 對(duì)時(shí)間序列文件處理的實(shí)例
- python時(shí)間日期函數(shù)與利用pandas進(jìn)行時(shí)間序列處理詳解
- 如何利用python進(jìn)行時(shí)間序列分析
相關(guān)文章
python框架django項(xiàng)目部署相關(guān)知識(shí)詳解
這篇文章主要介紹了python框架django項(xiàng)目部署相關(guān)知識(shí)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
pytorch使用tensorboardX進(jìn)行l(wèi)oss可視化實(shí)例
今天小編就為大家分享一篇pytorch使用tensorboardX進(jìn)行l(wèi)oss可視化實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
Python生成任意波形并存為txt的實(shí)現(xiàn)
本文主要介紹了Python生成任意波形并存為txt的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
Pytorch中torch.repeat_interleave()函數(shù)使用及說(shuō)明
這篇文章主要介紹了Pytorch中torch.repeat_interleave()函數(shù)使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
Python中Yield的基本用法及Yield與return的區(qū)別解析
Python中有一個(gè)非常有用的語(yǔ)法叫做生成器,用到的關(guān)鍵字就是yield,這篇文章主要介紹了Python中Yield的基本用法及Yield與return的區(qū)別,需要的朋友可以參考下2022-10-10
Python處理Excel表中單元格帶有換行的數(shù)據(jù)問(wèn)題
這篇文章主要介紹了Python處理Excel表中單元格帶有換行的數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
淺談Python中用datetime包進(jìn)行對(duì)時(shí)間的一些操作
下面小編就為大家?guī)?lái)一篇淺談Python中用datetime包進(jìn)行對(duì)時(shí)間的一些操作。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
Swin?Transformer模塊集成到Y(jié)OLOv5目標(biāo)檢測(cè)算法中實(shí)現(xiàn)
這篇文章主要為大家介紹了Swin?Transformer模塊集成到Y(jié)OLOv5目標(biāo)檢測(cè)算法中實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Python中playwright啟動(dòng)瀏覽器與常見(jiàn)運(yùn)行方式詳解
Playwright是一個(gè)功能強(qiáng)大的工具,可以幫助開(kāi)發(fā)人員自動(dòng)化測(cè)試、網(wǎng)頁(yè)截圖、信息提取等任務(wù),本文主要介紹了如何使用Playwright來(lái)啟動(dòng)瀏覽器,感興趣的可以了解下2024-05-05
Python實(shí)現(xiàn)自動(dòng)打開(kāi)電腦應(yīng)用的示例代碼
這篇文章主要介紹了Python實(shí)現(xiàn)自動(dòng)打開(kāi)電腦應(yīng)用的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04

