2016-09-22 12 views
0

時間が非常に近い(5秒以内に)場合、時間を一緒に組み合わせる最良の方法は何ですか?時刻が近いときにパンダのデータフレームにdatetimeを組み合わせる最も良い方法

    start     end delta 
0 2016-01-01 08:00:01 2016-01-01 08:07:53 472.0 
1 2016-01-01 08:07:54 2016-01-01 08:09:23 89.0 
2 2016-01-01 08:09:24 2016-01-01 08:32:51 1407.0 
3 2016-01-01 08:38:56 2016-01-01 08:38:58  2.0 
4 2016-01-01 08:39:00 2016-01-01 08:58:06 1146.0 
5 2016-01-01 09:07:26 2016-01-01 09:07:27  1.0 
6 2016-01-01 09:07:31 2016-01-01 09:07:33  2.0 
7 2016-01-01 09:07:35 2016-01-01 09:11:28 233.0 

    start     end delta 
0 2016-01-01 08:00:01 2016-01-01 08:07:53 472.0 
1 2016-01-01 08:07:54 2016-01-01 08:32:51 1496.0 
2 2016-01-01 08:38:56 2016-01-01 08:58:06 1148.0 
3 2016-01-01 09:07:26 2016-01-01 09:11:28 236.0 
+0

最初の2つの行が結合されなかった理由を説明できますか? – MaxU

+0

これは、データがセットからどのように抽出されたかです。これ以前に計算は実行されませんでした。 –

+0

私はそれがあなたが望むデータセットに組み合わされなかった理由を意味しますか? ['08:07:53' - ' 08:07:54'] - 5秒以内です – MaxU

答えて

0

はこれを試してみてください次のようになります。

timediff = df.start.diff()/np.timedelta64(1, 's') 
pd.DataFrame(
    {'start': df[(timediff>5) | (timediff.isnull())].start.tolist(), 
    'end': df[(timediff.shift(-1)>5) | (timediff.shift(-1).isnull())].end.tolist()} 
    ) 

これは、あなたが開始と終了の列なります。その後、デルタを取ることができます。

関連する問題