pandas.tseries.offsets.DateOffset#
- class pandas.tseries.offsets.DateOffset#
日期范围使用的标准日期增量类型。
其工作原理与 relativedelta 的关键字参数形式完全相同。请注意,relativedelta 的位置参数形式不受支持。关键字 n 的使用不被推荐——您最好在使用时指定 n,但无论如何它都在那里。n 对 DateOffset 的子类是必需的。
DateOffset 的工作原理如下。每个偏移量都指定了一组符合 DateOffset 的日期。例如,Bday 将此集合定义为工作日(周一至周五)的日期集合。要测试一个日期是否在 DateOffset dateOffset 的集合中,我们可以使用 is_on_offset 方法:dateOffset.is_on_offset(date)。
如果一个日期不在有效日期上,可以使用 rollback 和 rollforward 方法将日期滚动到该日期之前/之后最近的有效日期。
DateOffset 可以被创建以将日期向前移动给定的有效日期数量。例如,可以将 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 有点奇怪,我们建议避免使用它。
此外,使用日期组件的单数形式创建 DateOffset 可以用来替换时间戳的某些组件。
- Parameters:
- nint, 默认值 1
偏移量所代表的时间周期数。如果未指定时间模式,则默认为天数。
- normalizebool,默认 False
是否将 DateOffset 加法的结果向下舍入到前一个午夜。
- weekday整数 {0, 1, …, 6},默认为 0
星期几的具体整数。
0 是星期一
1 是星期二
2 是星期三
3 是星期四
4 是星期五
5 是星期六
6 是星期日
也可以使用 dateutil.relativedelta 中的 Weekday 类型。
MO 是星期一
TU 是星期二
WE 是星期三
TH 是星期四
FR 是星期五
SA 是星期六
SU 是星期日。
- **kwds
添加到偏移量值或替换偏移量值的**时间参数**。
添加到 偏移量(如 Timedelta)的参数:
years
months
weeks
days
hours
minutes
seconds
milliseconds
microseconds
nanoseconds
替换 偏移量值的参数:
year
month
day
weekday
hour
minute
second
microsecond
nanosecond。
参见
dateutil.relativedelta.relativedeltarelativedelta 类型旨在应用于现有的 datetime,可以替换该 datetime 的特定组件,或者表示时间间隔。
Examples
>>> 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')
Attributes
base返回调用偏移量对象的副本,其中 n=1 且所有其他属性都相同。
返回表示频率的字符串。
返回偏移量的额外参数字典。
返回表示基本频率的字符串。
Methods
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)如果提供的日期不在偏移量上,则将其向前滚动到下一个偏移量。