2017-01-23 83 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