我有一个包含时间戳事件的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 ...
答案 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