maxframe.dataframe.date_range#
- maxframe.dataframe.date_range(start=None, end=None, periods=None, freq=None, tz=None, normalize=False, name=None, closed=<no_default>, inclusive=None, chunk_size=None, **kwargs)[源代码]#
返回一个固定频率的 DatetimeIndex。
- 参数:
start (str or datetime-like, optional) -- 生成日期的左边界。
end (str or datetime-like, optional) -- 生成日期的右边界。
periods (int, optional) -- 要生成的周期数。
freq (str or DateOffset, default 'D') -- 频率字符串可以有倍数,例如 '5H'。请参见 此处 获取频率别名列表。
tz (str or tzinfo, optional) -- 用于返回本地化 DatetimeIndex 的时区名称,例如 'Asia/Hong_Kong'。默认情况下,结果 DatetimeIndex 是非时区感知的。
normalize (bool, default False) -- 在生成日期范围之前将起始/结束日期规范化到午夜。
name (str, default None) -- 结果 DatetimeIndex 的名称。
inclusive ({“both”, “neither”, “left”, “right”}, default “both”) -- 包含边界;是否将每个边界设置为闭合或开放。
**kwargs -- 用于兼容性。对结果没有影响。
- 返回:
rng
- 返回类型:
DatetimeIndex
参见
DatetimeIndex一个用于日期时间的不可变容器。
timedelta_range返回一个固定频率的 TimedeltaIndex。
period_range返回一个固定频率的 PeriodIndex。
interval_range返回一个固定频率的 IntervalIndex。
备注
在
start、end、periods和freq这四个参数中,必须指定其中三个。如果省略freq,则结果DatetimeIndex将在start和end之间具有periods个线性分布的元素(两端闭合)。要了解更多关于频率字符串的信息,请参见 此链接。
示例
指定值
接下来的四个示例生成相同的 DatetimeIndex,但 start、end 和 periods 的组合各不相同。
指定 start 和 end,使用默认的日频率。>>> import maxframe.dataframe as md
>>> md.date_range(start='1/1/2018', end='1/08/2018').execute() 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')
指定 start 和 periods,表示周期数(天数)。
>>> md.date_range(start='1/1/2018', periods=8).execute() 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')
指定 end 和 periods,表示周期数(天数)。
>>> md.date_range(end='1/1/2018', periods=8).execute() 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')
指定 start、end 和 periods;频率会自动生成(线性间隔)。
>>> md.date_range(start='2018-04-24', end='2018-04-27', periods=3).execute() 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'``(月末频率)。
>>> md.date_range(start='1/1/2018', periods=5, freq='M').execute() DatetimeIndex(['2018-01-31', '2018-02-28', '2018-03-31', '2018-04-30', '2018-05-31'], dtype='datetime64[ns]', freq='M')
允许多倍数
>>> md.date_range(start='1/1/2018', periods=5, freq='3M').execute() DatetimeIndex(['2018-01-31', '2018-04-30', '2018-07-31', '2018-10-31', '2019-01-31'], dtype='datetime64[ns]', freq='3M')
freq 也可以指定为 Offset 对象。
>>> md.date_range(start='1/1/2018', periods=5, freq=md.offsets.MonthEnd(3)).execute() DatetimeIndex(['2018-01-31', '2018-04-30', '2018-07-31', '2018-10-31', '2019-01-31'], dtype='datetime64[ns]', freq='3M')
指定 tz 来设置时区。
>>> md.date_range(start='1/1/2018', periods=5, tz='Asia/Tokyo').execute() 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 控制是否包含位于边界上的 start 和 end。默认值 "both" 表示包含两端的边界点。
>>> md.date_range(start='2017-01-01', end='2017-01-04', inclusive='both').execute() DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04'], dtype='datetime64[ns]', freq='D')
使用
inclusive='left'可在 end 落在边界上时将其排除。>>> md.date_range(start='2017-01-01', end='2017-01-04', closed='left').execute() DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03'], dtype='datetime64[ns]', freq='D')
使用
inclusive='right'可在 start 落在边界上时将其排除,类似地,inclusive='neither' 将同时排除 start 和 end。>>> md.date_range(start='2017-01-01', end='2017-01-04', closed='right').execute() DatetimeIndex(['2017-01-02', '2017-01-03', '2017-01-04'], dtype='datetime64[ns]', freq='D')
备注
使用
inclusive='neither'需要 Pandas 1.4.0 或更高版本。否则可能会引发错误。