pandas中時間序列——date_range函式
阿新 • • 發佈:2019-02-13
通過?pandas.date_range命令檢視date_range函式幫助文件
語法:pandas.date_range(start=None, end=None, periods=None, freq='D', tz=None, normalize=False, name=None, closed=None, **kwargs)
該函式主要用於生成一個固定頻率的時間索引,在呼叫構造方法時,必須指定start、end、periods中的兩個引數值,否則報錯。
主要引數說明:
periods:固定時期,取值為整數或None
freq:日期偏移量,取值為string或DateOffset,預設為'D'
normalize:若引數為True表示將start、end引數值正則化到午夜時間戳
name:生成時間索引物件的名稱,取值為string或None
closed:可以理解成在closed=None情況下返回的結果中,若closed=‘left’表示在返回的結果基礎上,再取左開右閉的結果,若closed='right'表示在返回的結果基礎上,再取做閉右開的結果
In [11]: import pandas as pd In [12]: pd.date_range(start='20170101',end='20170110') Out[12]: DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04', '2017-01-05', '2017-01-06', '2017-01-07', '2017-01-08', '2017-01-09', '2017-01-10'], dtype='datetime64[ns]', freq='D') In [13]: pd.date_range(start='20170101',periods=10) Out[13]: DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04', '2017-01-05', '2017-01-06', '2017-01-07', '2017-01-08', '2017-01-09', '2017-01-10'], dtype='datetime64[ns]', freq='D') In [14]: pd.date_range(start='20170101',periods=10,freq='1D') Out[14]: DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04', '2017-01-05', '2017-01-06', '2017-01-07', '2017-01-08', '2017-01-09', '2017-01-10'], dtype='datetime64[ns]', freq='D') In [15]: pd.date_range(start='20170101',end='20170110',freq='3D',name='dt') Out[15]: DatetimeIndex(['2017-01-01', '2017-01-04', '2017-01-07', '2017-01-10'], dtype='datetime64[ns]', name='dt', freq='3D') In [16]: pd.date_range(start='2017-01-01 08:10:50',periods=10,freq='s',normaliz ...: e=True) Out[16]: DatetimeIndex(['2017-01-01 00:00:00', '2017-01-01 00:00:01', '2017-01-01 00:00:02', '2017-01-01 00:00:03', '2017-01-01 00:00:04', '2017-01-01 00:00:05', '2017-01-01 00:00:06', '2017-01-01 00:00:07', '2017-01-01 00:00:08', '2017-01-01 00:00:09'], dtype='datetime64[ns]', freq='S') In [17]: pd.date_range(start='2017-01-01 08:10:50',end='2017-01-02 09:20:40',fr ...: eq='s',normalize=True) Out[17]: DatetimeIndex(['2017-01-01 00:00:00', '2017-01-01 00:00:01', '2017-01-01 00:00:02', '2017-01-01 00:00:03', '2017-01-01 00:00:04', '2017-01-01 00:00:05', '2017-01-01 00:00:06', '2017-01-01 00:00:07', '2017-01-01 00:00:08', '2017-01-01 00:00:09', ... '2017-01-01 23:59:51', '2017-01-01 23:59:52', '2017-01-01 23:59:53', '2017-01-01 23:59:54', '2017-01-01 23:59:55', '2017-01-01 23:59:56', '2017-01-01 23:59:57', '2017-01-01 23:59:58', '2017-01-01 23:59:59', '2017-01-02 00:00:00'], dtype='datetime64[ns]', length=86401, freq='S') In [18]: pd.date_range(start='2017-01-01 08:10:50',periods=15,freq='s',normaliz ...: e=False) Out[18]: DatetimeIndex(['2017-01-01 08:10:50', '2017-01-01 08:10:51', '2017-01-01 08:10:52', '2017-01-01 08:10:53', '2017-01-01 08:10:54', '2017-01-01 08:10:55', '2017-01-01 08:10:56', '2017-01-01 08:10:57', '2017-01-01 08:10:58', '2017-01-01 08:10:59', '2017-01-01 08:11:00', '2017-01-01 08:11:01', '2017-01-01 08:11:02', '2017-01-01 08:11:03', '2017-01-01 08:11:04'], dtype='datetime64[ns]', freq='S') In [19]: pd.date_range(start='20170101',end='20170110',freq='3D',closed='left') ...: Out[19]: DatetimeIndex(['2017-01-01', '2017-01-04', '2017-01-07'], dtype='dateti me64[ns]', freq='3D') In [20]: pd.date_range(start='20170101',end='20170110',freq='3D',closed='right' ...: ) Out[20]: DatetimeIndex(['2017-01-04', '2017-01-07', '2017-01-10'], dtype='dateti me64[ns]', freq='3D')