当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python 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 给出)。 (如果未指定 startendfreq 中的一个,则可以在给定 periods (范围内的时间步数)的情况下计算此缺失参数。请参见下面的注释。)

参数

startstr 或datetime-like,可选

生成日期的左边界。

endstr 或datetime-like,可选

生成日期的右边界。

periods整数,可选

要生成的周期数。

freqstr 或 DateOffset,默认为“D”

频率字符串可以有多个,例如'5H'。有关频率别名的列表,请参见此处。

tzstr 或 tzinfo,可选

返回本地化 DatetimeIndex 的时区名称,例如“Asia/Hong_Kong”。默认情况下,生成的 DatetimeIndex 为timezone-naive。

normalize布尔值,默认为 False

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

namestr,默认无

结果 DatetimeIndex 的名称。

closed{无,‘left’, ‘right’},可选

使间隔相对于给定频率关闭到‘left’, ‘right’,或两侧(无,默认值)。

inclusive{“both”, “neither”, “left”, “right”},默认 “both”

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

**kwargs

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

返回

rng日期时间索引

注意

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

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

例子

指定值

接下来的四个示例生成相同的 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')

指定 startendperiods ;频率是自动生成的(线性间隔)。

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

如果 end 落在边界上,则使用 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')

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

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.date_range。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。