获取上一个的方法是使用shift方法:
In [11]: df1.change.shift(1)Out[11]:0 NaT1 2014-03-082 2014-04-083 2014-05-084 2014-06-08Name: change, dtype: datetime64[ns]
现在您可以减去这些列。 注意:此版本与0.13.1(日期时间的东西最近有很多工作,因此YMMV与较旧的版本一起使用)。
In [12]: df1.change.shift(1) - df1.changeOut[12]:0 NaT1 -31 days2 -30 days3 -31 days4 0 daysName: change, dtype: timedelta64[ns]
您可以将其应用于每个案例/组:
In [13]: df.groupby('case')['change'].apply(lambda x: x.shift(1) - x)Out[13]:0 NaT1 -31 days2 -30 days3 -31 days4 NaTdtype: timedelta64[ns]


