python Pandas : How to calculate elapsed time between spans?

标签 python pandas time-series

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

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

是否有一种干净的方法来计算 pandas 中事件之间的时间(例如,上一个事件的 结束 与此事件的 开始 之间的跨度)?

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

最佳答案

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

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

关于 python Pandas : How to calculate elapsed time between spans?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14719018/

相关文章:

python - 使用 SQLAlchemy 在 Postgresql 中创建数据库表时出现编程错误

python - 类型错误 : argument of type 'instance' is not iterable

mysql - 测试时间戳是否在范围内的最有效方法

python - 使用 .to_json 将数据帧转换为 JSON 会弄乱日期时间数据

python - 如何根据当前行的条件获取 pandas GroupBy Dataframe 的前几行?

python - 是否有 pandas 自相关图方法的 Bokeh 版本?

python - 如何在 Sphinx 中避免 "SEVERE: Duplicate ID"警告我的 autodoc'd 模块?

python - 使用 Python 拟合 3D 多项式曲面

python - 你如何计算数据帧中的这种差异?

python - 尝试将一列日期减去另一个日期