2013-02-05 39 views
1

我有一个包含时间戳事件的熊猫数据框。每个事件都有一个开始时间和结束时间:python 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 ... 

回答

2

我认为最简单的方法是从另一列中减去一个移位的列。移位功能正是这样做的,它将数组移位一个索引的缺省值。

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 
+1

(A特技在一个数据帧读的是使用'pd.read_clipboard(SEP = '\ S +')'。) –

+0

感谢您的提示!这将节省很多时间! – Zelazny7