2016-11-16 6 views
1

ローリングしてウィンドウを重ね合わせて作られたサンプルを含む時系列データセットを作成する必要があります。つまり、特定のウィンドウサイズと特定のステップでデータフレームを分割することです。ローリングウインドウPandas

パンダを使ってこれを行う方法は?ローリングウィンドウがあることがわかりますが、ウィンドウ内の値に対していくつかの集計を実行するために使用されます(ローリング平均の計算など)。私はこれらの重なり合ったウィンドウを分離することに興味があります。どうやってするの?

ので、出力はこのようなデータフレームのようになります。

1, a 
2, b 
3, c 
4, d 
5, e 
6, f 
7, g 

そして、ウィンドウサイズ3とステップ2の出力は次のようになります。

1, a 
2, b 
3, c 

3, c 
4, d 
5, e 

5, e 
6, f 
7, g 

だけ明確にすること、私が書く方法を知っていますこのための機能は、既にPandasに用意されているものがあるかどうかをチェックしたかっただけです。

+0

あなたが所望の出力など、最小限の例を含めていただけません([MCVE](http://stackoverflow.com/help/mcve参照します) )? –

+0

@JulienMarrec例を追加しました。 – Marko

+0

ウィンドウサイズが3とステップ2の場合は、1,2,3、2,3,4でなければなりませんか? –

答えて

0

あなたに役立つパンダの機能はありません。単純な実装は次のとおりです。出力と

A = pd.DataFrame(index=range(1,10), 
       data=['a','b','c','d','e','f','g','h','i'], 
       columns=['letters']) 

step = 2 
size = 3 
n_examples = len(A) 
dataframes = [] 
k=0 

while(k * step + size < n_examples): 
    dataframes += [A.loc[k * step:k * step + size]] 
    k+=1 

print(dataframes) 

[ letters 
1  a 
2  b 
3  c, letters 
2  b 
3  c 
4  d 
5  e, letters 
4  d 
5  e 
6  f 
7  g]