或者,将数据框的子集复制/分配给多个位置

时间:2019-05-24 09:56:01

标签: python pandas dataframe time-series

我有一个数据名人,例如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]

我想选择两个典型的星期(因此需要多行),例如前两个星期w1w2

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,并在某些条件下(通过检查每一行的日期)来处理此问题。但是,我想找到一种更好/更快的方法。

我还可以一个星期再堆叠另一个星期,但我想知道是否还有更优雅的方式。

感谢您的帮助,

0 个答案:

没有答案