我试图从pandas数据框创建一个滑动窗口列表,但不是给我特定的值,它只返回标题。为什么会发生这种情况,我该怎么做才能解决这个问题?
MultiParamTypeClasses
答案 0 :(得分:2)
考虑使用列表推导而不是for循环:
[data.iloc[i:i + batch_size, 0].tolist()
for i in range(data.shape[0] - batch_size + 1)]
#[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9]]
答案 1 :(得分:1)
使用pd.Series.iloc
代替pd.DataFrame.iloc
来生成系列的滚动值:
data[0].iloc[i:(i+batch_size)]
# [[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9]]
您的结果是因为您正在有效地计算指定索引范围的数据帧的list
,这一点并不清楚。例如,list(data)
会返回[0]
,而且您应该期望从这些代码中显而易见。