"timestamp"
と"Y"
のテーブルdf
があります。私は別の列"MaxY"
を追加して、最大でY
という値を最大24時間後に追加したいと考えています。つまり、それは非常に遅いように計算することは明らかです。より良い方法がありますか?パンダは時間のローリングウィンドウで最大値を見つける
"SumY"
を計算するのと同じケースでは、私はcumsum()
というトリックを使用してそれを行うことができます。しかし、ここで同様のトリックは動作していないようです。
要求通り、テーブル例(MaxYは出力です。入力は最初の2列のみです)。
-------------------------------
| timestamp | Y | MaxY |
-------------------------------
| 2016-03-29 12:00 | 1 | 3 | rows 2 and 3 fall within 24 hours, so MaxY = max(2,3)
| 2016-03-29 13:00 | 2 | 4 | rows 3 and 4 fall in the time interval, so MaxY = max(3, 4)
| 2016-03-30 11:00 | 3 | 4 | rows 4, 5, 6 all fall in the interval so MaxY = max(4, 3, 2)
| 2016-03-30 12:30 | 4 | 3 | max (3, 2)
| 2016-03-30 13:30 | 3 | 2 | row 6 is the only row in the interval
| 2016-03-30 14:00 | 2 | nan? | there are no rows in the time interval. Any value will do.
-------------------------------
お手伝いをします。提供されたサンプルに基づいて、5-7行と期待される出力/結果セットを持つサンプルデータセットを提供してください。 – MaxU
@ JohnE、私が理解しているように、 'rolling()'は固定数の行のウィンドウのみです。私のものは一定の時間間隔です。 –
@MaxU、私は素朴なコードのスニペットが十分に良いと思っていました。今私はテーブルを追加しました。それは明確ですか? –