Pandas时间序列——date_range方法

转载来源

功能

date_range()方法主要用于生成一系列特定的时间,我们可以自己设定开始、结束、周期数、时间间隔、时区等等。

语法

import pandas

pandas.date_range(start=None, end=None, periods=None, freq='D', tz=None, normalize=False, name=None, closed=None, **kwargs)

参数说明

  • start、end

开始时间、结束时间,可以是str格式,也可以是datetime对象或None。

  • periods

生成的周期数,可以是整数或None。

In [54]: pd.date_range(start='1/1/2018', end='1/08/2018')
Out[54]:
DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04',
               '2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08'],
              dtype='datetime64[ns]', freq='D')

In [55]: pd.date_range(start='1/1/2018', periods=8)
Out[55]:
DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04',
               '2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08'],
              dtype='datetime64[ns]', freq='D')

In [56]: pd.date_range(end='1/1/2018', periods=8)
Out[56]:
DatetimeIndex(['2017-12-25', '2017-12-26', '2017-12-27', '2017-12-28',
               '2017-12-29', '2017-12-30', '2017-12-31', '2018-01-01'],
              dtype='datetime64[ns]', freq='D')

In [57]: pd.date_range(start='2018-04-24', end='2018-04-27', periods=3)
Out[57]:
DatetimeIndex(['2018-04-24 00:00:00', '2018-04-25 12:00:00',
               '2018-04-27 00:00:00'],
              dtype='datetime64[ns]', freq=None)

In [58]: pd.date_range(start='2018-04-24', end='2018-04-27', periods=4)
Out[58]: DatetimeIndex(['2018-04-24', '2018-04-25', '2018-04-26', '2018-04-27'], dtype='datetime64[ns]', freq=None)

In [59]: pd.date_range(start='2018-04-24', end='2018-04-27', periods=2)
Out[59]: DatetimeIndex(['2018-04-24', '2018-04-27'], dtype='datetime64[ns]', freq=None)

In [60]: pd.date_range(start='2018-04-24', end='2018-04-27', periods=5)
Out[60]:
DatetimeIndex(['2018-04-24 00:00:00', '2018-04-24 18:00:00',
               '2018-04-25 12:00:00', '2018-04-26 06:00:00',
               '2018-04-27 00:00:00'],
              dtype='datetime64[ns]', freq=None)
  • freq

日期偏移量,即相邻时间的间隔,可以是str形式或DateOffset,默认为’D‘。

In [66]: pd.date_range(start='1/1/2018', periods=5, freq='5D')
Out[66]:
DatetimeIndex(['2018-01-01', '2018-01-06', '2018-01-11', '2018-01-16',
               '2018-01-21'],
              dtype='datetime64[ns]', freq='5D')

In [67]: pd.date_range(start='1/1/2018', periods=5, freq='M')
Out[67]:
DatetimeIndex(['2018-01-31', '2018-02-28', '2018-03-31', '2018-04-30',
               '2018-05-31'],
              dtype='datetime64[ns]', freq='M')

In [68]: pd.date_range(start='1/1/2018', periods=5, freq='H')
Out[68]:
DatetimeIndex(['2018-01-01 00:00:00', '2018-01-01 01:00:00',
               '2018-01-01 02:00:00', '2018-01-01 03:00:00',
               '2018-01-01 04:00:00'],
              dtype='datetime64[ns]', freq='H')

In [69]: pd.date_range(start='1/1/2018', periods=5, freq=pd.offsets.MonthEnd(3))
Out[69]:
DatetimeIndex(['2018-01-31', '2018-04-30', '2018-07-31', '2018-10-31',
               '2019-01-31'],
              dtype='datetime64[ns]', freq='3M')
  • tz

设定时区,可以为str格式或tzinfo。

In [70]: pd.date_range(start='1/1/2018', periods=5, tz='Asia/Tokyo')
Out[70]:
DatetimeIndex(['2018-01-01 00:00:00+09:00', '2018-01-02 00:00:00+09:00',
               '2018-01-03 00:00:00+09:00', '2018-01-04 00:00:00+09:00',
               '2018-01-05 00:00:00+09:00'],
              dtype='datetime64[ns, Asia/Tokyo]', freq='D')

In [71]: pd.date_range(start='1/1/2018', periods=5, tz='Asia/Shanghai')
Out[71]:
DatetimeIndex(['2018-01-01 00:00:00+08:00', '2018-01-02 00:00:00+08:00',
               '2018-01-03 00:00:00+08:00', '2018-01-04 00:00:00+08:00',
               '2018-01-05 00:00:00+08:00'],
              dtype='datetime64[ns, Asia/Shanghai]', freq='D')
  • normalize

布尔值,默认为False,若参数为True表示将start、end参数值正则化到午夜时间戳;

In [83]: pd.date_range(start='1/1/2018 14:00:00', periods=5,normalize=False)
Out[83]:
DatetimeIndex(['2018-01-01 14:00:00', '2018-01-02 14:00:00',
               '2018-01-03 14:00:00', '2018-01-04 14:00:00',
               '2018-01-05 14:00:00'],
              dtype='datetime64[ns]', freq='D')

In [84]: pd.date_range(start='1/1/2018 14:00:00', periods=5,normalize=True)
Out[84]:
DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04',
               '2018-01-05'],
              dtype='datetime64[ns]', freq='D')
  • name

生成时间索引对象的名称,取值为string或None;

In [79]: pd.date_range(start='2017-01-01', end='2017-01-04', closed=None,freq='2D',name='xiaowoniu')
Out[79]: DatetimeIndex(['2017-01-01', '2017-01-03'], dtype='datetime64[ns]', name=u'xiaowoniu', freq='2D')
  • closed

若closed=’left’表示在返回的结果基础上,再取左开右闭的结果,若closed=’right’表示在返回的结果基础上,再取左闭右开的结果。

In [72]: pd.date_range(start='2017-01-01', end='2017-01-04', closed=None)
Out[72]: DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04'], dtype='datetime64[ns]', freq='D')

In [73]: pd.date_range(start='2017-01-01', end='2017-01-04', closed='left')
Out[73]: DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03'], dtype='datetime64[ns]', freq='D')

In [74]: pd.date_range(start='2017-01-01', end='2017-01-04', closed='right')
Out[74]: DatetimeIndex(['2017-01-02', '2017-01-03', '2017-01-04'], dtype='datetime64[ns]', freq='D')

In [75]: pd.date_range(start='2017-01-01', end='2017-01-04', closed='right',freq='2D')
Out[75]: DatetimeIndex(['2017-01-03'], dtype='datetime64[ns]', freq='2D')

In [76]: pd.date_range(start='2017-01-01', end='2017-01-04', closed='left',freq='2D')
Out[76]: DatetimeIndex(['2017-01-01', '2017-01-03'], dtype='datetime64[ns]', freq='2D')

In [77]: pd.date_range(start='2017-01-01', end='2017-01-04', closed=None,freq='2D')
Out[77]: DatetimeIndex(['2017-01-01', '2017-01-03'], dtype='datetime64[ns]', freq='2D')

 

你可能感兴趣的:(Pandas)