Python Pandas:如何计算时间间隔?

1 投票
1 回答
1012 浏览
提问于 2025-04-17 14:53

我有一个 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

撰写回答