#python #pandas
#python #pandas
Вопрос:
Я должен создать скользящее окно входных данных с window size = 3
Фрейм данных
0 1
0 1 2
1 3 4
2 5 6
3 7 8
Желаемый результат:
0 1 2 3 4 5
0 1 2 NA NA NA NA
1 3 4 1 2 NA NA
2 5 6 3 4 1 2
3 7 8 5 6 3 4
Я использовал data.values.flatten()
, но он преобразует все строки в dataframe
в nested list
.
Как я могу создать скользящее окно входных данных (желаемой длины окна) из dataframe
Комментарии:
1. То, что вы описали в своем выводе, выглядит следующим образом
df.shift
Ответ №1:
Вы можете просто concat
:
new_df = pd.concat([df.shift(i) for i in range(3)], axis=1)
# rename columns
new_df.columns = np.arange(new_df.shape[1])
вывод:
0 1 2 3 4 5
0 1 2 NaN NaN NaN NaN
1 3 4 1.0 2.0 NaN NaN
2 5 6 3.0 4.0 1.0 2.0
3 7 8 5.0 6.0 3.0 4.0