用于日期范围的标准日期增量类型。
就您传入的关键字args而言,其工作方式与relativedelta完全相同,不建议使用关键字n-最好在使用的关键字中指定n,但无论它是否适合您。 DateOffset子类需要n。
DateOffset的工作方式如下。每个偏移量指定一组符合DateOffset的日期。例如,Bday将此集合定义为工作日(M-F)的日期集合。为了测试日期是否在DateOffset dateOffset的集合中,我们可以使用is_on_offset方法:dateOffset.is_on_offset(date)。
如果日期不是有效日期,则可以使用rollback和rollforward方法将日期滚动到该日期之前/之后的最近有效日期。
可以创建DateOffsets以将日期向前移动给定数量的有效日期。例如,可以将Bday(2)添加到日期以将其向前移动两个工作日。如果日期不是从有效日期开始,则首先将其移动到有效日期。因此,伪代码为:
def __add __(date):date = rollback(date)#如果日期是有效的返回日期+ ,则不执行任何操作
如果创建的日期偏移量为负数,则日期将被前滚。伪代码为:
def __add __(date):date = rollforward(date)#什么都不做,日期是有效的返回日期+
零表示一个问题。它应该向前还是向后滚动?我们任意地将其前滚:
日期+ BDay(0)== BDay.rollforward(日期)
由于0有点怪异,我们建议避免使用它。
参数:
n:int, 默认为 1偏移量表示的时间段数。
normalize:bool, 默认为 False是否将DateOffset相加的结果四舍五入到前一个午夜。
**kwds:添加或替换偏移值的时间参数。
添加到偏移量的参数(如Timedelta):
years
months
weeks
days
hours
minutes
seconds
microseconds
nanoseconds
替换偏移值的参数:
year
month
day
weekday
hour
minute
second
microsecond
纳秒。
例子:
>>> 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')
属性:
返回n = 1且所有其他属性相等的调用偏移对象的副本。
freqstr
kwds
name
nanos
rule_code
方法:
apply_index(self, other)
DateOffset对DatetimeIndex的矢量化应用,在没有矢量化实现的情况下,会引发NotImplentedError以获取偏移量。
rollback(self, dt)
仅将提供的日期向后滚动到下一个偏移量,除非不在偏移量上。
仅将提供的日期向前滚动到下一个偏移量,除非不在偏移量上。
__call__
apply
copy
isAnchored
is_anchored
is_on_offset
onOffset