我需要在我的时间序列中创建一个数据集,其中包含由滚动,重叠窗口制成的样本。也就是说,使用特定窗口大小和特定步骤来分割我的数据帧。
如何使用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 :(得分: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]