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 且所有其他属性相同。

freqstr

返回一个表示频率的字符串。

kwds

返回一个包含偏移额外参数的字典。

n

名称

返回表示基本频率的字符串。

纳秒

返回一个整数,表示固定频率的总纳秒数。

normalize

rule_code

返回表示基本频率的字符串。

方法

复制()

返回频率的副本。

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)

如果不在偏移上,则将提供的日期向前滚动到下一个偏移。