Python:从300个数据集中创建大小为12的数据帧,使其包含0:12、1:13、2:14等

时间:2019-09-17 06:25:05

标签: python loops dataframe data-science data-analysis

我有一个超过300行的数据框,我希望提取12个大小的数据框,例如:0:12、1:13、2:14、3:15等,就像移动窗口一样,并将其分别存储在数据框。

我已经尝试过手动获取,但是以下列方式花费大量时间:

dfa=df3[:12]
dfb=df3[1:13]
dfc=df3[2:14]
dfd=df3[3:15]
dfe=df3[4:16]
dff=df3[5:17]
dfg=df3[6:18]
dfh=df3[7:19]
dfi=df3[8:20]
dfj=df3[9:21]
dfk=df3[10:22]
dfl=df3[11:23]

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

编辑:您可以使用从0迭代到数据框行长度(预期的数据框分区长度)的循环。就像您的数据框中有300行一样,请在0,300-11的范围之间进行迭代。然后将该分区附加到之前启动的列表中。

new_list = [[]]
for i in range(df.shape[0]-11):
    new_list.append([df[i:i+12]])
#delete the first index of list which is []
del new_list[0]
print(new_list)

答案 1 :(得分:0)

您可以根据需要使用列表推导来获取数据帧数组

size = 12
dfs = [df[i:i+size] for i in range(len(df)-size+1)]