Этот выдающийся пост довольно ясно показывает, как использовать pandas cumsum()
DataFrame для построения трехмерного тензора, содержащего столбец со списками списков, размеры которых делают их пригодными для использования в качестве входных данных временных рядов в LSTM. Я хотел бы сделать что-то очень похожее, но с скользящим списком списков вместо совокупного агрегирования списков.
Например. Скажем, у вас был DataFrame с 3 временными рядами, таким образом:
A B C
1 2 3
4 5 6
7 8 9
10 11 12
В статье, на которую я ссылался выше, показано, как использовать pandas cumsum()
для создания столбца DataFrame из вложенных списков, которые выглядят следующим образом:
[[1, 2, 3]]
[[1, 2, 3], [4, 5, 6]]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Ключевые строки кода Python, позволяющие добиться этого, следующие:
input_cols = list(df.columns)
df['single_list'] = df[input_cols].apply(
tuple, axis=1).apply(list)
df['double_encapsulated'] = df.single_list.apply(
lambda x: [list(x)])
Но мне нужно скользящее окно списков, а не совокупную сумму списков. Должно получиться так:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[[4, 5, 6], [7, 8, 9], [10, 11, 12]]
[[7, 8, 9], [10, 11, 12], [13, 14, 15]]
Можно ли это сделать с помощью объекта Rolling?