1
とPostgreSQLの時系列のエントリの割合を計算することができますので、私はこのようなデータを持っている:私が欲しいものはどのように私は移動時間窓
index price
2015-01-08 07:01:18.601318 10
2015-01-08 07:01:19.100645 10
2015-01-08 07:01:19.600494 24
2015-01-08 07:01:20.101432 22
2015-01-08 07:01:20.102579 235
2015-01-08 07:01:20.600370 1050
2015-01-08 07:01:20.603521 100
2015-01-08 07:01:20.800408 50
2015-01-08 07:01:21.100629 10
2015-01-08 07:01:21.601491 12
2015-01-08 07:01:21.601663 97
を指定された時間長の移動ウィンドウを持つことです各エントリの後ろに1秒と書いて、そのウィンドウ内のエントリ数を計算します。
結果は次のようになります。
index price rate
2015-01-08 07:01:18.601318 10 1
2015-01-08 07:01:19.100645 10 2
2015-01-08 07:01:19.600494 24 3
2015-01-08 07:01:20.101432 22 2
2015-01-08 07:01:20.102579 235 3
2015-01-08 07:01:20.600370 1050 4
2015-01-08 07:01:20.603521 100 4
2015-01-08 07:01:20.800408 50 5
2015-01-08 07:01:21.100629 10 6
2015-01-08 07:01:21.601491 12 4
2015-01-08 07:01:21.601663 97 5
これは、これらのエントリがデータベースに入力された速度を計算することです。
私は何らかの種類の拡張ウィンドウが必要なように見えますが、動作させることはできません。
これも可能なpandas DataFrameで実行可能な場合。 私はパンダにTimeGrouperを使用して秒でグループにそれらを私ができる知っていると、各グループの数を計算するが、私は、インデックスの重複であり、他の問題を抱えているし、また、これは情報を削除します。
df['rate'] = df.groupby(pd.TimeGrouper('1s'))['price'].transform('count')
これを試してみると、私は高い値に到達します。理由はクロスジョイントを作成するためです。 Explain分析を実行すると、各テーブルから22行がフェッチされ、208が削除され、多くの重複が残されます。 – Unic0arn
申し訳ありませんが、私は非常に大きなデータセットを処理しているため、これらの結合に非常に時間がかかります。 – Unic0arn
ああ、私がそれが恐ろしいと言ったとき、私はそれを意味しました。好奇心の理由から、2番目にグループ化するのではなく、1つのエントリごとにウィンドウが必要なのはなぜですか(つまり、同じ秒の2つのエントリは同じレートになります)。 – Dmitri