python的datetime模块中,有一个timedelta()函数,其可以通过其参数生成一个特定长度的时间增量,然后可以和时间戳对象进行加减运行实现时间戳在时间上的移动;同样的,在pandas中有一个DateOffset()函数,具体在pandas.tseries.offsets中,其也可以实现一样的功能。但是两者又有区别,准确的说,DateOffset()函数比timedelta()更加的强大,至于为什么,只需要看下两者各自的参数便可以知道,如下所示:
class datetime.
timedelta
(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
上面展示了两者的参数,可知,根据timedelta的参数,其只能生成明确长度的时间增量,比如几周几天几小时几秒之类的,这些都是明确的不会有歧义的,但是DateOffset还可以生成几个月几年这样的增量,因为一个月的时间是不定的,可以有28天、30天等,一年的时间也是不定的,有365或366天;这说明DateOffset可以生成模糊时间增量,其可以自动在和时间戳对象运算时识别,根据时间戳自动确定明确的增量,这是一个比较灵活有用的功能,所以其比timedelta更加的强大。这里还需要说明的是,datetime模块中的时间类型和pandas中的时间类型是兼容的,可以直接进行运算。