如何重塑 pandas 数据框作为 keras simpleRNN 的输入?

How to reshape pandas dataframe as input to keras simpleRNN?

我有一个像这样的时间序列数据的数据框

df = pd.DataFrame({'TimeStep': [1, 2, 3, 1, 2, 3],
                   'Feature1': [100, 250, 300, 400, 100, 50],
                   'Feature2' : [2, 5, 100, 10, 42, 17]})

   TimeStep |Feature1   |Feature2
    |1      |100    |2
    |2      |250    |5
    |3      |300    |100
    |1      |400    |10
    |2      |100    |42
    |3      |50     |17

现在我想将这些提供给 keras 中的一个简单的 RNN 层 例如上面的 Batch Size 为 2,timesteps = 3 and input_dim = 2

我尝试了 df.to_numpy().reshape((2, 3, 2)) (当然是真实 df 的实际尺寸) 而且那个形状不起作用。

非常感谢您能给我的任何指示。 前一段时间我用纯 numpy 数组做了类似的事情,但是我没有指定 input_dim 并且有效。

提前致谢!

你很接近!如果你重塑不包括 TimeStep 列的数据框(通过 iloc[:, 1:]),它应该这样做:

>>> df.iloc[:, 1:].to_numpy().reshape(2, 3, 2)
array([[[100,   2],
        [250,   5],
        [300, 100]],

       [[400,  10],
        [100,  42],
        [ 50,  17]]], dtype=int64)

具有 (batch_size, seq_len, num_features) 形状。