Exemplo n.º 1
0
 def _add_delta(self, delta):
     if isinstance(delta, (Tick, timedelta)):
         inc = offsets._delta_to_microseconds(delta)
         new_values = (self.asi8 + inc).view("M8[us]")
     else:
         new_values = self.astype("O") + delta
     return DatetimeIndex(new_values, tz=self.tz, freq="infer")
Exemplo n.º 2
0
def _get_range_edges(axis, begin, end, offset, closed='left',
                     base=0):
    from pandas.tseries.offsets import Tick, _delta_to_microseconds
    if isinstance(offset, basestring):
        offset = to_offset(offset)

    if not isinstance(offset, DateOffset):
        raise ValueError("Rule not a recognized offset")

    if isinstance(offset, Tick):
        day_micros = _delta_to_microseconds(timedelta(1))
        # #1165
        if ((day_micros % offset.micros) == 0 and begin is None
            and end is None):
            return _adjust_dates_anchored(axis[0], axis[-1], offset,
                                          closed=closed, base=base)

    if begin is None:
        if closed == 'left':
            first = Timestamp(offset.rollback(axis[0]))
        else:
            first = Timestamp(axis[0] - offset)
    else:
        first = Timestamp(offset.rollback(begin))

    if end is None:
        last = Timestamp(axis[-1] + offset)
    else:
        last = Timestamp(offset.rollforward(end))

    return first, last