2017-01-23 84 views
1

我有foundafew相關的問題,但沒有一個似乎在做伎倆。我想要一個類似的實現this,但與熊貓數據幀結構。下面我創建了2016年全年的樣本數據,其中有366行。熊貓滾動組通過時間序列數據

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來獲取接下來的5天的數據,每2天。正常groupby沒有重疊的timframes;每兩天放入一個小組會給我183(366/2)個有兩天數據的小組。把一個小組分成5天,每個小組將有大約74(366/5)個小組,每個小組有5天。我想要183個團體,每個團體有五天的時間。

對不起,如果這不明確。下面是我想:

  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('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 

這是我與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

謝謝,我錯過了你的問題,同時谷歌搜索。有沒有辦法添加像'滾動'或'groupby'更多的關鍵字,所以谷歌您的問題,我連接的其他人? –

+0

你的問題確實如此。你已經添加了關鍵詞。當人們谷歌的東西,會導致他們到這個問題,Stackoverflow重定向到我的問題,所有這些都是因爲我標記爲重複。這就是爲什麼它可以要求重複。你問了一個相同的問題,但用了不同的措詞。從這個意義上說,你已經幫助改善了網站。 – piRSquared

回答

2

拿到如果日期與區別正常順序有一天,您的示例數據顯示,您可以使用索引來拾取行。 從每兩行啓動,並選擇五行用於每個選

[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