【问题标题】:python pandas: How to calculate elapsed time between spans?python pandas:如何计算跨度之间的经过时间?
【发布时间】:2013-01-21 01:23:20
【问题描述】:

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

【问题讨论】:

    标签: python pandas time-series


    【解决方案1】:

    我认为完成此操作的最简单方法是从另一列中减去一个移位列。 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
    

    【讨论】:

    • (读取DataFrame的技巧是使用pd.read_clipboard(sep='\s+')。)
    • 感谢您的提示!这样可以节省很多时间!
    猜你喜欢
    • 2021-09-15
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多