pandas.date_range #

熊猫。date_range ( start = None , end = None , period = None , freq = None , tz = None , normalize = False , name = None , Included = 'both' , * , unit = None , ** kwargs ) [来源] #

返回固定频率的 DatetimeIndex。

返回等距时间点的范围(其中任意两个相邻点之间的差异由给定频率指定),使得它们都满足start <[=] x <[=] end,其中第一个和最后一个是,分别是该范围内落在 边界上的第一个和最后一个时间点freq (如果以频率字符串形式给出)或有效的时间点freq(如果以 形式给出 pandas.tseries.offsets.DateOffset)。 (如果未指定startend、 或之一,则可以根据给定、范围内的时间步数来计算此缺失参数。请参阅下面的注释。)freqperiods

参数
开始str 或类似日期时间,可选

用于生成日期的左边界。

end str 或类似日期时间,可选

生成日期的右界。

period整数,可选

要生成的周期数。

freq str、Timedelta、datetime.timedelta 或 DateOffset,默认“D”

频率字符串可以有多个,例如“5h”。请参阅 此处了解频率别名列表。

tz str 或 tzinfo,可选

用于返回本地化 DatetimeIndex 的时区名称,例如“Asia/Hong_Kong”。默认情况下,生成的 DatetimeIndex 是 timezone-naive 的,除非传递时区感知的 datetime-likes。

标准化布尔值,默认 False

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

名称str,默认无

生成的 DatetimeIndex 的名称。

包含{“both”, “neither”, “left”, “right”}, 默认“both”

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

1.4.0 版本中的新增功能。

单位str,默认无

指定所需的结果分辨率。

2.0.0 版本中的新增内容。

**夸格

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

返回
日期时间索引

也可以看看

DatetimeIndex

日期时间的不可变容器。

timedelta_range

返回固定频率 TimedeltaIndex。

period_range

返回固定频率的PeriodIndex。

interval_range

返回固定频率 IntervalIndex。

笔记

start在、endperiods和四个参数中freq,必须指定三个。如果freq省略,结果 DatetimeIndex将在和periods之间具有线性间隔的元素 (两侧闭合)。startend

要了解有关频率字符串的更多信息,请参阅此链接

例子

指定值

接下来的四个示例生成相同的DatetimeIndex ,但改变startendperiod的组合。

指定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')

指定时区感知的startend,以及默认的每日频率。

>>> pd.date_range(
...     start=pd.to_datetime("1/1/2018").tz_localize("Europe/Berlin"),
...     end=pd.to_datetime("1/08/2018").tz_localize("Europe/Berlin"),
... )
DatetimeIndex(['2018-01-01 00:00:00+01:00', '2018-01-02 00:00:00+01:00',
               '2018-01-03 00:00:00+01:00', '2018-01-04 00:00:00+01:00',
               '2018-01-05 00:00:00+01:00', '2018-01-06 00:00:00+01:00',
               '2018-01-07 00:00:00+01:00', '2018-01-08 00:00:00+01:00'],
              dtype='datetime64[ns, Europe/Berlin]', freq='D')

指定开始时间期间、期间数(天)。

>>> 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')

指定endperiod,即周期数(天)。

>>> 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')

指定开始结束期间;频率自动生成(线性间隔)。

>>> 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(频率)更改为'ME'(月末频率)。

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

允许多个

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

freq也可以指定为 Offset 对象。

>>> 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='3ME')

指定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')

包容性控制是否包括边界上的开始结束。默认值“两者”包括两端的边界点。

>>> 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'排除该末端。

>>> 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')

如果 start 落在边界上,则用于inclusive='right'排除startinclusive='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')

指定单位

>>> pd.date_range(start="2017-01-01", periods=10, freq="100YS", unit="s")
DatetimeIndex(['2017-01-01', '2117-01-01', '2217-01-01', '2317-01-01',
               '2417-01-01', '2517-01-01', '2617-01-01', '2717-01-01',
               '2817-01-01', '2917-01-01'],
              dtype='datetime64[s]', freq='100YS-JAN')