2017-05-22 13 views
0

からイベントを作成します。多分誰かがそれで私を助けることができるタイムスタンプ

私はTimeDeltasでデータフレームを持っている:私が欲しいもの

timestamp  Time_Delta 
01.12.2014 00:10  0  
01.12.2014 00:25  15 
01.12.2014 00:30  5  
01.12.2014 00:35  5  
01.12.2014 00:50  15 
01.12.2014 01:15  25 
01.12.2014 01:20  5 
01.12.2014 01:35  15 
01.12.2014 02:05  30 
01.12.2014 02:25  20 
01.12.2014 02:30  5  
01.12.2014 02:35  5  
01.12.2014 02:40  5  
01.12.2014 02:50  10 
01.12.2014 03:15  25 
01.12.2014 03:20  5  
01.12.2014 03:30  10 
01.12.2014 03:40  10 
01.12.2014 03:55  15 
01.12.2014 04:25  30 

ははtimedeltaが以下の場合は、イベントを作成することです15分、少なくとも3回続けて行なわれる。それは次のようになります。

timestamp  Time_Delta Event_Nr 
01.12.2014 00:10 0  
01.12.2014 00:25 15  1 
01.12.2014 00:30 5  1 
01.12.2014 00:35 5  1 
01.12.2014 00:50 15  1 
01.12.2014 01:15 25 
01.12.2014 01:20 5 
01.12.2014 01:35 15 
01.12.2014 02:05 30 
01.12.2014 02:25 20 
01.12.2014 02:30 5  2 
01.12.2014 02:35 5  2 
01.12.2014 02:40 5  2 
01.12.2014 02:50 10  2 
01.12.2014 03:15 25 
01.12.2014 03:20 5  3 
01.12.2014 03:30 10  3 
01.12.2014 03:40 10  3 
01.12.2014 03:55 15  3 
01.12.2014 04:25 30 

は、残念ながら私のpythonのスキルは、まだ非常に弱いので、誰かがそれで私を助けることができれば、それは素晴らしいことです!

敬具

私のコードは次のようになります。

df1=DataFrame(index=df.index, columns=['Number_Timestamps', 'Event_Number']) 
Event_Nr=0 
index=0 
cnt1=0 
cnt2=0 
for i in range(len(df.index)-1): 
    if df.Time_Delta.values[i]<=15: 
     cnt1=cnt1+1 
     if (cnt1>=3) & (df.Time_Delta.values[i+1]<=15): 
     cnt2=cnt2+1 
     index=i-cnt2 
    else: 
     index=i-cnt2 
     df1.Event_Number.values[index+2:i+1]=Event_Nr      
     Event_Nr+=1 
     cnt2=2 

それは動作しますが、かなり読めないに見えます...

+0

あなたはこのデータを私は信じていますか? –

+0

または2つの別々のリストがそれぞれ一列に並んでいますか? –

+0

そのすべてが1つのdfにありますか、それとも何を意味しましたか? –

答えて

0

私はあなたのコードを与えるつもりはないが、ちょうどこの問題に対処するアプローチ。

まだ決定を下していない処理済み行を含むバッファ変数(つまり、行のリスト)を用意する必要があります。決定が行われると、その要素を新しいDataFrame(または他のタイプのデータ構造)に入れて、バッファをフラッシュするだけです。

すべての行をサイクル処理するために作成し、サイクル外の2つの変数:Event_nrの最後の既知の値を保持する変数と空のバッファ。

forサイクル内の単一の行を処理するとき、それをバッファに入れます。これまでのところバッファに入れた行を(すべて)決定できるかどうかを確認してください(デルタ値と他のすべての前提を考慮してください)。 決定が可能な場合は、Event_nr値を編集して(条件が満たされている場合)、バッファを空にしてこれらの行を新しいDataFrameに追加します。 決定を下すことができない場合は、行をバッファに入れ続け、条件を確認してください。

関連する問題