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.relativedeltarelativedelta 类型旨在应用于现有的日期时间,可以替换该日期时间的特定组件,或表示时间间隔。 例子 >>> 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) 仅当不在偏移时,将提供的日期向前滚动到下一个偏移。