Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数据帧划分为重叠段_Python_Python 3.x_Pandas_Pandas Groupby_Datetimeindex - Fatal编程技术网

Python 将数据帧划分为重叠段

Python 将数据帧划分为重叠段,python,python-3.x,pandas,pandas-groupby,datetimeindex,Python,Python 3.x,Pandas,Pandas Groupby,Datetimeindex,我有一个带有时间索引的数据帧,需要将其划分为重叠的段(例如,长度为5天,偏移量为1天) 以下是一个示例数据帧: import pandas as pd i=pd.date_range('05-01-2015', '21-05-2018', freq='D') x=pd.DataFrame(index=i, data = np.random.randint(0, 100, len(i))) 划分后,各细分市场的指数应分别从2015-05-01到2015-05-05,从2015-05-02

我有一个带有时间索引的数据帧,需要将其划分为重叠的段(例如,长度为5天,偏移量为1天)

以下是一个示例数据帧:

import pandas as pd    
i=pd.date_range('05-01-2015', '21-05-2018', freq='D')
x=pd.DataFrame(index=i, data = np.random.randint(0, 100, len(i)))
划分后,各细分市场的指数应分别从
2015-05-01
2015-05-05
,从
2015-05-02
2015-05-06
,从
2015-05-03
2015-05-08
等。我认为
groupby
应该有一些技巧来做到这一点,但无法提出有效的实施方案

作为参考,这在以下方面实施:

分区[list,n,d]
-生成偏移量为d的子列表


我非常感谢你们提供的任何见解。

正如@alkasm所指出的,您可以使用pandas中的
滚动
使用示例数据框对5天分区执行聚合计算:

import pandas as pd    
i = pd.date_range('05-01-2015', '21-05-2018', freq='D')
x = pd.DataFrame(index=i, data = np.random.randint(0, 100, len(i)))

x.rolling(5).sum()

这样做的诀窍是,它向后计算聚合函数,因此您可能需要扩展索引以包括四天前的索引。数据帧中索引为
2018-05-06
的一行以及5行
rolling()
调用将代表
2018-05-02
2018-05-06
的段(包括5天)。

我对您使用的日期格式有点困惑,是
DD-MM-YYYY
还是
MM-DD-YYYY
?我想你想要
df.rolling(5)
?在5行滚动窗口中:。如果您的时间序列不一致,在固定的时间段内,它还具有“偏移”功能。