2017-01-23 14 views
1

私はfoundafew関連の質問はありませんが、トリックをやっているようです。私はthisと同様の実装を望んでいますが、パンダのデータフレーム構造を使っています。以下では、3616の行を持つ2016年のサンプルデータを作成します。パンダローリングgroupby時系列データ

import pandas as pd 
import numpy as np 
dates=pd.date_range('2016-01-01','2016-12-31')  
random_data=np.random.randn(len(dates)) 
data=pd.DataFrame(random_data,index=dates,columns=['Test']) 

groupbyを使用して2日ごとに次の5日間のデータを取得したいと考えています。通常のgroupbyは、オーバーラップするtimframesを持ちません。 2日のグループバイを入れると、2日間のデータを持つ183(366/2)のグループが得られます。 5日間のグループバイを行うと、それぞれ5日間の74(366/5)グループが私に与えられます。私は、それぞれ5日間の183のグループを希望します。

これが明確でない場合は、事前にお詫び申し上げます。ここで私が欲しいものである:これは私がdata.groupby(pd.TimeGrouper('2d'))

  Test 
2016-02-08 1.073696 
2016-02-09 1.169865 
      Test 
2016-02-10 1.421454 
2016-02-11 -0.576036 
      Test 
2016-02-12 -1.066921 
2016-02-13 2.639681 

で得るものです

  Test 
2016-02-08 1.073696 
2016-02-09 1.169865 
2016-02-10 1.421454 
2016-02-11 -0.576036 
2016-02-12 -1.066921 

      Test 
2016-02-10 1.421454 
2016-02-11 -0.576036 
2016-02-12 -1.066921 
2016-02-13 2.639681 
2016-02-14 -0.261616 

これは日付がの違いで通常のシーケンスをしている場合、私はdata.groupby(pd.TimeGrouper('5d'))

  Test 
2016-02-08 0.898029 
2016-02-09 -0.905950 
2016-02-10 -0.202483 
2016-02-11 1.073696 
2016-02-12 1.169865 
       Test 
2016-02-13 1.421454 
2016-02-14 -0.576036 
2016-02-15 -1.066921 
2016-02-16 2.639681 
2016-02-17 -0.261616 
+1

それらの答えのいずれかが有用である場合は、アップに投票してだけでなく、以下のPsidomの答え@気軽に。あなたが何か違うものを探していると思うなら、私に知らせてください。私はこのバックアップを開きます。 – piRSquared

+0

ありがとう、私はグーグルであなたの質問を逃した。 'rolling'や 'groupby'のようなキーワードを追加する方法はありますか –

+0

あなたの質問はまさにその通りです。キーワードを追加しました。人々がこの質問につながる何かのためにgoogleするとき、Stackoverflowはそのトラフィックを私の質問にリダイレクトします。これは、その重複を尋ねる理由です。あなたは同一の質問をしましたが、異なる言葉で質問しました。その意味で、サイトを改善するのに役立っています。 – piRSquared

答えて

2

で得るものですあなたのサンプルデータが示すように、インデックスを使用して行を取り上げることができます。 2行おきからスタートし、それぞれがを選ぶための5つの行を選択するには:

[data.iloc[i:(i+5)] for i in range(0, len(data), 2)] 

#[    Test 
# 2016-01-01 0.450173 
# 2016-01-02 -0.496819 
# 2016-01-03 0.270781 
# 2016-01-04 -0.207634 
# 2016-01-05 1.032061,     
#     Test 
# 2016-01-03 0.270781 
# 2016-01-04 -0.207634 
# 2016-01-05 1.032061 
# 2016-01-06 -0.470462 
# 2016-01-07 -1.077634, ...] 
+0

これを他の投稿に追加した場合、私はそこにも投票します。 – piRSquared

関連する問題