1

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

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   ...
4

1 回答 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
于 2013-02-06T00:08:20.377 回答