pandas.tseries.offsets.DateOffset#
- class pandas.tseries.offsets.DateOffset#
用于日期范围的标准日期增量类型。
工作方式与 relativedelta 的关键字参数形式完全相同。请注意,不支持 relativedelta 的位置参数形式。不鼓励使用关键字 n——你最好在你使用的其他关键字中指定 n,但无论如何它都在那里供你使用。n 是 DateOffset 子类的必需项。
DateOffset 的工作原理如下。每个偏移量指定一组符合 DateOffset 的日期。例如,Bday 将此集合定义为工作日(周一至周五)的日期集合。要测试一个日期是否在某个 DateOffset 的日期集合中,我们可以使用 is_on_offset 方法:dateOffset.is_on_offset(date)。
如果一个日期不是有效日期,可以使用 rollback 和 rollforward 方法将日期滚动到该日期之前/之后的最近有效日期。
DateOffsets 可以被创建来将日期向前移动给定数量的有效日期。例如,Bday(2) 可以添加到一个日期来将其向前移动两个工作日。如果日期不在一个有效日期上,首先它会被移动到一个有效日期。因此伪代码是:
def __add__(date): date = rollback(date) # does nothing if date is valid return date + <n number of periods>
当为负数的周期创建日期偏移时,日期首先向前滚动。伪代码如下:
def __add__(date): date = rollforward(date) # does nothing if date is valid return date + <n number of periods>
零呈现了一个问题。它应该向前滚动还是向后滚动?我们任意地让它向前滚动:
date + BDay(0) == BDay.rollforward(date)
由于0有点奇怪,我们建议避免使用它。
此外,通过指定日期组件的单数形式添加 DateOffsets 可以用来替换时间戳的某些组件。
属性
n
(int, 默认 1) 偏移表示的时间周期数。如果未指定时间模式,则默认为 n 天。
normalize
(bool, 默认 False) 是否将 DateOffset 加法的结果向下舍入到前一天的午夜。
工作日
(int {0, 1, …, 6}, 默认 0) 一周中某一天的特定整数。 - 0 是星期一 - 1 是星期二 - 2 是星期三 - 3 是星期四 - 4 是星期五 - 5 是星期六 - 6 是星期日 可以使用 dateutil.relativedelta 中的 Weekday 类型代替。 - MO 是星期一 - TU 是星期二 - WE 是星期三 - TH 是星期四 - FR 是星期五 - SA 是星期六 - SU 是星期日。
**kwds
添加或替换偏移值的时间参数。**添加**到偏移值的参数(如 Timedelta): - 年 - 月 - 周 - 天 - 小时 - 分钟 - 秒 - 毫秒 - 微秒 - 纳秒 替换偏移值的参数: - 年 - 月 - 天 - 工作日 - 小时 - 分钟 - 秒 - 微秒 - 纳秒。
参见
dateutil.relativedelta.relativedelta
relativedelta 类型旨在应用于现有的 datetime,并可以替换该 datetime 的特定组件,或者表示一段时间间隔。
例子
>>> from pandas.tseries.offsets import DateOffset >>> ts = pd.Timestamp('2017-01-01 09:10:11') >>> ts + DateOffset(months=3) Timestamp('2017-04-01 09:10:11')
>>> ts = pd.Timestamp('2017-01-01 09:10:11') >>> ts + DateOffset(months=2) Timestamp('2017-03-01 09:10:11') >>> ts + DateOffset(day=31) Timestamp('2017-01-31 09:10:11')
>>> ts + pd.DateOffset(hour=8) Timestamp('2017-01-01 08:10:11')
属性
base
返回调用偏移对象的一个副本,其中 n=1 且所有其他属性相同。
返回一个表示频率的字符串。
返回一个包含偏移额外参数的字典。
返回表示基本频率的字符串。
返回一个整数,表示固定频率的总纳秒数。
返回表示基本频率的字符串。
方法
复制
()返回频率的副本。
is_month_end
(ts)返回布尔值,判断一个时间戳是否发生在月末。
is_month_start
(ts)返回布尔值,判断时间戳是否发生在月初。
is_on_offset
(dt)返回一个布尔值,表示时间戳是否与此频率相交。
is_quarter_end
(ts)返回布尔值,判断一个时间戳是否发生在季度末。
is_quarter_start
(ts)返回布尔值,判断一个时间戳是否发生在季度开始。
is_year_end
(ts)返回布尔值,判断一个时间戳是否发生在年末。
is_year_start
(ts)返回布尔值,判断一个时间戳是否发生在年初。
回滚
(dt)如果不在偏移量上,则将提供的日期向后滚动到下一个偏移量。
rollforward
(dt)如果不在偏移上,则将提供的日期向前滚动到下一个偏移。