python pandas:如何计算跨度之间的经过时间?

时间:2013-02-05 23:39:12

标签: python pandas time-series

我有一个包含时间戳事件的pandas DataFrame。每个活动都有一个开始时间和结束时间:

start  end other_vars
  100  120  ...
  150  151  ...
  160  170  ...
  200  210  ...

在pandas中有没有一种干净的方法来计算事件之间的时间(例如前一事件的 end 与此事件的 start 之间的跨度)?

start  end between other_vars
  100  120      NA   ...
  150  151      30   ...
  160  170       9   ...
  200  210      30   ...

1 个答案:

答案 0 :(得分:2)

我认为最简单的方法是从另一个中减去一个移位列。 shift函数就是这样,它将一个数组移动一个默认的索引。

In [3]: df
Out[3]:
   start  end
0    100  120
1    150  151
2    160  170
3    200  210

In [4]: df.start - df.end.shift()
Out[4]:
0   NaN
1    30
2     9
3    30

In [5]: df['elapsed'] = df.start - df.end.shift()

In [6]: df
Out[6]:
   start  end  elapsed
0    100  120      NaN
1    150  151       30
2    160  170        9
3    200  210       30