2016-09-29 3 views
-1

データフレームAとBが必要です。両方ともdatetime列ともう1つの共通列Xを持っています。Bは1分ごとにXを持つので大きく、Aは断続的にX 1日。 Aにおける各「日時」のために、私は範囲(またはSTDEV)を計算したいXのB.を使用して、以前の30分の間にそうような何か:Pandas Dataframeとrange/stdevとの比較

For i,time in enumerate(A['time']): temp=B[(B['time'] > time -timedelta(days=0, minutes=30)) and (B['time'] <=time] range[i]=temp.max-temp.min

はここで一時は内のすべてのデータのスナップショットを作成することを意図していますBのAのタイムスタンプの30分前。これを行うには、ループを必要としない簡単な方法がありますか? AとBのサイズは異なることに注意してください。

サンプルA:(入力と一緒に利用可能な唯一のいくつかの出力) Date input output 2015-01-02 20:48:00-00:00 1120 343 2015-01-02 21:25:00-00:00 1345 365

サンプルB:(利用可能なすべての入力が、ノー出力) Date input 2014-11-02 00:32:00-00:00 1542 2014-11-02 00:33:00-00:00 1285

出力例: Date input output Range_input_previous 30 min 2015-01-02 20:48:00-00:00 1120 343 ??(use table B) 2015-01-02 21:25:00-00:00 1345 365 ??(use table B)

+0

両方のデータフレームのサンプルを提供できますか? –

+0

追加されました。役に立ったら教えてください – dayum

+0

希望の出力を追加できますか? – jezrael

答えて

0

この私のために動作しますが、ループを使用します:

関連する問題