我有这个数据框:
时间步长 | 身份证 | x1 | x2 | y |
---|---|---|---|---|
1 | 1 | 2 | 3 | 0 |
2 | 1 | 4 | 5 | 0 |
... | ... | ... | ... | ... |
24 | 1 | 5 | 5 | 0 |
... | ... | ... | ... | ... |
1 | 9 | 2 | 3 | 1 |
2 | 9 | 4 | 5 | 1 |
... | ... | ... | ... | ... |
24 | 9 | 2 | 2 | 1 |
我希望它转换为形状为 (9, 24, 2) 的 numpy ndarray
X_train
。
其中,9
代表有多少个ID。 24
代表 n-rows
又名 timestep
。 2
表示有多少个特征(x1和x2)
与形状为
y_train
的 (9, 1)
相同,其中 9 代表 ID 数量,1 代表标量值,因为所有 y
对于所有 24 个时间步长都是相同的
首先按 ID/时间步长对行进行排序,然后
reshape
:
df.sort_values(by=['ID', 'timestep'])[['x1', 'x2']].to_numpy().reshape((9, 24, 2))