pandas.tseries.offsets.DateOffset #

pandas.tseries.offsets类 日期偏移#

用于日期范围的标准类型的日期增量。

工作原理与relativedelta 的关键字参数形式完全相同。请注意,不支持relativedelata 的位置参数形式。不鼓励使用关键字 n - 您最好在使用的关键字中指定 n,但不管它是否适合您。 DateOffset 子类需要 n。

DateOffset 的工作原理如下。每个偏移量指定一组符合 DateOffset 的日期。例如,Bday 将此集合定义为工作日 (MF) 的日期集合。要测试日期是否在 DateOffset dateOffset 集合中,我们可以使用 is_on_offset 方法:dateOffset.is_on_offset(date)。

如果日期不是有效日期,则可以使用回滚和前滚方法将日期滚动到该日期之前/之后最近的有效日期。

可以创建 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>

零提出了一个问题。应该向前滚动还是向后滚动?我们任意让它前滚:

日期 + BDay(0) == BDay.rollforward(日期)

由于 0 有点奇怪,我们建议避免使用它。

此外,添加一个由日期分量的单数形式指定的DateOffsets可以用来替换时间戳的某些分量。

参数
n整数,默认1

偏移量代表的时间段数。如果指定时没有时间模式,则默认为 n 天。

标准化布尔值,默认 False

是否将 DateOffset 加法的结果向下舍入到前一个午夜。

工作日int {0, 1, …, 6},默认 0

一周中某一天的特定整数。

  • 0 是星期一

  • 1 是星期二

  • 2 是星期三

  • 3 是星期四

  • 4 是星期五

  • 5 是星期六

  • 6 是星期日

相反,可以使用 dateutil.relativedelta 中的 Weekday 类型。

  • MO 是星期一

  • TU 是星期二

  • 我们是星期三

  • 这个星期四

  • FR 是星期五

  • 南澳是星期六

  • 苏是周日。

**kwds

添加或替换偏移值的时间参数。

添加到偏移量的参数(如 Timedelta):

  • 小时

  • 分钟

  • 毫秒

  • 微秒

  • 纳秒

替换偏移值的参数:

  • 工作日

  • 小时

  • 分钟

  • 第二

  • 微秒

  • 纳秒。

也可以看看

dateutil.relativedelta.relativedelta

relativedelta 类型旨在应用于现有的日期时间,可以替换该日期时间的特定组件,或表示时间间隔。

例子

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

name

返回表示基频的字符串。

nanos

normalize

rule_code

方法

copy()

返回频率的副本。

is_anchored()

(已弃用)返回布尔值,频率是否为单位频率 (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)

返回布尔值,时间戳是否出现在年份开始。

rollback(dt)

仅当不在偏移上时,才将提供的日期向后滚动到下一个偏移。

rollforward(dt)

仅当不在偏移时,将提供的日期向前滚动到下一个偏移。