У меня есть datafame, скажем df1
, с несколькими столбцами, один из которых содержит временной ряд. Для примера я заполняю df1
произвольными значениями (кроме дат).
index A B C D
0 2 3 4 2018-01-01 00:00:00
1 5 6 7 2018-01-01 00:10:00
2 8 9 10 2018-01-01 00:20:00
3 11 12 13 2018-01-01 00:30:00
4 14 15 16 2018-01-01 00:40:00
. . . . .
. . . . .
. . . . .
52559 20 21 22 2018-12-31 23:50:00
[52560 rows x 4 columns]
Я хочу выбрать две типичные недели (следовательно, несколько строк), скажем, первые две недели w1
и w2
w1
0 2 3 4 2018-01-01 00:00:00
1 5 6 7 2018-01-01 00:10:00
2 8 9 10 2018-01-01 00:20:00
3 11 12 13 2018-01-01 00:30:00
4 14 15 16 2018-01-01 00:40:00
. . . . .
. . . . .
. . . . .
167 17 18 19 2018-01-07 23:50:00
w2
168 4 6 8 2018-01-08 00:00:00
169 10 12 14 2018-01-08 00:10:00
170 16 18 20 2018-01-08 00:20:00
171 22 24 26 2018-01-08 00:30:00
172 28 30 32 2018-01-08 00:40:00
. . . . .
. . . . .
. . . . .
336 34 36 38 2018-01-14 23:50:00
и скопируйте / назначьте их альтернативно другому фрейму данных df2
, так что df2
будет w1/w2/w1/w2
... с общим числом 52 недель:
index A B C D
0 2 3 4 2018-01-01 00:00:00
1 5 6 7 2018-01-01 00:10:00
2 8 9 10 2018-01-01 00:20:00
3 11 12 13 2018-01-01 00:30:00
4 14 15 16 2018-01-01 00:40:00
. . . . .
. . . . .
. . . . .
167 34 36 38 2018-01-14 23:50:00
168 4 6 8 2018-01-08 00:00:00
169 10 12 14 2018-01-08 00:10:00
170 16 18 20 2018-01-08 00:20:00
171 22 24 26 2018-01-08 00:30:00
172 28 30 32 2018-01-08 00:40:00
. . . . .
. . . . .
. . . . .
336 34 36 38 2018-01-14 23:50:00
0 2 3 4 2018-01-01 00:00:00
1 5 6 7 2018-01-01 00:10:00
2 8 9 10 2018-01-01 00:20:00
3 11 12 13 2018-01-01 00:30:00
4 14 15 16 2018-01-01 00:40:00
. . . . .
. . . . .
. . . . .
167 34 36 38 2018-01-14 23:50:00
. . . . .
. . . . .
. . . . .
[52560 rows x 4 columns]
Одна неделя в году будет другой.
До сих пор я думал о циклическом перемещении по всему фрейму данных df1
и решил эту проблему с некоторыми условиями (проверяя дату каждой строки). Тем не менее, я хотел бы найти лучший / более быстрый способ.
Я мог бы также составлять одну неделю, затем другую, снова через цикл, но мне интересно, есть ли более элегантный способ.
Спасибо за помощь,