私は、駅識別コード( 'usaf')と日付で整理された天気観測(fzraHrObs)のデータフレームを持っています。 fzraHrObsにはいくつかの気象データ列があります。局コードと日付(DateTimeオブジェクト)のように見える:天気「イベント」はパンダの時差に基づいてグループ化されています
usaf dat
716270 2014-11-23 12:00:00
2015-12-20 08:00:00
2015-12-20 12:00:00
716280 2015-12-19 08:00:00
2015-12-19 09:00:00
私は観察が同じイベントで、以前の観測カウント後< 6時間を発生する局による「イベント」にこれらの観察グループにしたいです。次に、イベントの開始時間、終了時間、およびイベント数をデータフレームに出力します。上記の例のデータを考えると、私は、出力は次のようになりたいのですが:
usaf eventNum start end count
716270 1 2014-11-23 12:00:00 2014-11-23 12:00:00 1
2 2015-12-20 09:00:00 2015-12-20 12:00:00 2
716280 1 2015-12-19 08:00:00 2015-12-19 09:00:00 2
私は現在のために/ IFループとdictsでこれをやっているが、それはされていますので、パンダに物事を切り替えるに取り組んでいますはるかに効率的です。
私の最初の考えは、駅でグループ化された各行でdatのdiffを行い、それを数時間で得ることでした。したがって、私はこれを示す列 'diff'を持っています。私はイベントの開始/終了/継続時間を取得する方法を理解するのに苦労しています。私はfzraHrObs [fzraHrObs ['diff']> = 6]に関わるものも同様に関与するだろうと推測していますか?
5時間間隔で3回観測した場合、3番目のイベントは同じイベントとしてカウントされます(前のイベントから6時間以内に発生したイベント)。または新しいイベントです(最初のイベントの6時間後)? – IanS
良い質問です。はい - 3つ目のイベントは同じイベントとしてカウントされます。イベント内の各観測は、5時間以下で区切られます。 – MeteoMtl