pandas.date_range#

pandas.date_range(start=None, end=None, periods=None, freq=None, tz=None, normalize=False, name=None, closed=NoDefault.no_default, inclusive=None, **kwargs)[源代码]#

返回固定频率的DatetimeIndex。

返回间隔相等的时间点的范围(其中任意两个邻接点之间的差由给定频率指定),以使它们都满足 start <[=] x <[=] end ,其中第一个和最后一个分别是该范围内落入边界的第一个和最后一个时间点 freq (如果以频率字符串的形式给出)或对 freq (如果作为 pandas.tseries.offsets.DateOffset )。(如果恰好是其中之一 startend ,或 freqnot 指定,则可以计算该缺失的参数 periods ,范围内的时间步数。请参阅下面的注释。)

参数
start字符串或类似日期时间,可选

用于生成日期的左侧边界。

end字符串或类似日期时间,可选

生成日期的右边界。

periods整型,可选

要生成的期间数。

freq字符串或DateOffset,默认为“D”

频率字符串可以有多个,例如‘5H’。看见 here 获取频率别名列表。

tzStr或tzinfo,可选

返回本地化DatetimeIndex的时区名称,例如‘Asia/Hong_Hong Kong’。默认情况下,生成的DatetimeIndex是时区朴素的。

normalize布尔值,默认为False

在生成日期范围之前,将开始/结束日期标准化为午夜。

name字符串,默认为无

生成的DatetimeIndex的名称。

closed{无,‘左’,‘右’},可选

使间隔相对于给定频率闭合到“左”、“右”或两侧(无,默认设置)。

1.4.0 版后已移除: 论据 closed 已被弃用,以标准化边界输入。使用 inclusive 而是将每个边界设置为关闭或打开。

inclusive{“两者”,“都不”,“左”,“右”},默认为“两者”

包括边界;是否将每个边界设置为闭合或开放。

1.4.0 新版功能.

**kwargs

为了兼容性。对结果没有影响。

退货
rngDatetimeIndex

参见

DatetimeIndex

DateTime的不可变容器。

timedelta_range

返回固定频率的TimedeltaIndex。

period_range

返回固定频率的周期索引。

interval_range

返回固定频率的IntervalIndex。

注意事项

四个参数中的 startendperiods ,以及 freq ,则必须恰好指定三个。如果 freq 被省略,则会导致 DatetimeIndex 将会有 periods 之间的线性间距元素 startend (两边均关闭)。

要了解更多有关频率字符串的信息,请参阅 this link

示例

指定值

接下来的四个示例生成相同的结果 DatetimeIndex ,但不同的组合 startendperiods

指定 startend ,使用默认的每日频率。

>>> pd.date_range(start='1/1/2018', end='1/08/2018')
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')

指定 startperiods ,期间数(天数)。

>>> pd.date_range(start='1/1/2018', periods=8)
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')

指定 endperiods ,期间数(天数)。

>>> pd.date_range(end='1/1/2018', periods=8)
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')

指定 startend ,以及 periods ;频率是自动生成的(线性间隔)。

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

其他参数

更改了 freq (频率)至 'M' (月末频率)。

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

允许使用多个

>>> pd.date_range(start='1/1/2018', periods=5, freq='3M')
DatetimeIndex(['2018-01-31', '2018-04-30', '2018-07-31', '2018-10-31',
               '2019-01-31'],
              dtype='datetime64[ns]', freq='3M')

freq 也可以指定为偏移对象。

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

指定 tz 设置时区。

>>> pd.date_range(start='1/1/2018', periods=5, tz='Asia/Tokyo')
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')

inclusive 控制是否包括 startend 都在边界上。缺省值“Both”包括两端的边界点。

>>> pd.date_range(start='2017-01-01', end='2017-01-04', inclusive="both")
DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04'],
              dtype='datetime64[ns]', freq='D')

使用 inclusive='left' 排除,排除 end 如果它落在边界上。

>>> pd.date_range(start='2017-01-01', end='2017-01-04', inclusive='left')
DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03'],
              dtype='datetime64[ns]', freq='D')

使用 inclusive='right' 排除,排除 start 如果它落在边界上,同样 inclusive='neither' 将同时排除这两项 startend

>>> pd.date_range(start='2017-01-01', end='2017-01-04', inclusive='right')
DatetimeIndex(['2017-01-02', '2017-01-03', '2017-01-04'],
              dtype='datetime64[ns]', freq='D')