私は(現在の観測含むない)最後の5日間にわたりXパンダ:過去数日間の変数のローリング合計はどのように計算されますか?
- の
sum
を含む変数を作成したいと思いますdf = pd.DataFrame({ 'X' : np.random.randn(50000)}, index=pd.date_range('1/1/2000', periods=50000, freq='T')) df.head(10) Out[37]: X 2000-01-01 00:00:00 -0.699565 2000-01-01 00:01:00 -0.646129 2000-01-01 00:02:00 1.339314 2000-01-01 00:03:00 0.559563 2000-01-01 00:04:00 1.529063 2000-01-01 00:05:00 0.131740 2000-01-01 00:06:00 1.282263 2000-01-01 00:07:00 -1.003991 2000-01-01 00:08:00 -1.594918 2000-01-01 00:09:00 -0.775230
を次のように私は、データフレームを持っている
- は、現在の観測とまったく同じ時刻に観測される観測値のみを考慮します。すなわち
:インデックス2000-01-01 00:00:00
で
- 、
df['rolling_sum_same_hour']
は、Xの値が(もちろん2000-01-01
含まない)データの最後の5日間00:00:00
で観察された和を含んでいます。 - インデックス
2000-01-01 00:01:00
において、df['rolling_sum_same_hour']
は、最後の5日間の00:00:01
に観察されるXの合計を含み、以下同様である。
直感的なアイデアは、日中の価格が日中の季節性を持っていることです。私はそのように取り除きたいと思います。
ノー成功を収めてdf['rolling_sum_same_hour']=df.at_time(df.index.minute).rolling(window=5).sum()
を使用しようとしました。 アイデア
多くの感謝!
あなたはブールインデックス試みることができる: 'DF [ 'rolling_sum_same_hour'] = DFを[df.index.hour == 16] .rolling(window = 10).sum() 'あなたは分、秒などを考慮に入れてフィルタを任意に細かくすることができますが、冗長になります... meh – StarFox
それははっきりしません。 'rolling_sum_same_hour'カラムの値は何時から何時まで(例えば' 00:00'と '01:00' - ' ['00:01 '、'00:02'、。 ..、'00:59 ']))? – MaxU
@Noobie:あなたの提案に問題がないという事実はもちろん! – StarFox