pandas返回标头而不是值

时间:2018-03-17 00:54:05

标签: python pandas

我试图从pandas数据框创建一个滑动窗口列表,但不是给我特定的值,它只返回标题。为什么会发生这种情况,我该怎么做才能解决这个问题?

MultiParamTypeClasses

2 个答案:

答案 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],而且您应该期望从这些代码中显而易见。