Этот выдающийся пост довольно ясно иллюстрирует, как использовать метод панд 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?