0
私は、次のコードを使用して7日間の合計ウィンドウ(将来的に楽しみにして)を計算しています:ローリングウィンドウの時間ベースの合計のスピードアップ?
def for_window(g, win=7):
g = g.set_index('date').resample('D')['value'].sum()
g['roll'] = g.sort_index(ascending=False).rolling(window=win, center=False, min_periods=1).sum().dropna()
return g
df = df.groupby(['id1','id2']).apply(for_window,win=7)
これは動作しますが、それはLAREデータセットに非常に遅いです。 groupby
には50万のユニークなグループがあり、それぞれに5-100の日付があります。
私のデータがどのように見えるかの例:
id1 id2 date value
3 14 2017-06-14 5
3 14 2017-06-15 20
3 45 2017-06-15 18
3 46 2017-06-14 6
3 46 2017-06-15 21
3 46 2017-06-16 6
3 47 2017-06-15 5
13 26 2017-06-16 4
13 35 2017-06-14 4
13 39 2017-06-14 3
は、これを行うための迅速な方法はありますか?ここ
@BradSolomonが追加します!提案していただきありがとうございます。データの設定頻度はありません。そのほとんどは毎日ですが、データにはいくつかの穴があります。 – user1566200