Python Pandas:如何计算时间间隔?
我有一个 pandas 的数据表,里面记录了一些带时间戳的事件。每个事件都有一个开始时间和结束时间:
start end other_vars
100 120 ...
150 151 ...
160 170 ...
200 210 ...
有没有简单的方法可以计算事件之间的时间差呢?比如说,计算上一个事件的结束时间和当前事件的开始时间之间的间隔。
start end between other_vars
100 120 NA ...
150 151 30 ...
160 170 9 ...
200 210 30 ...
1 个回答
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