【发布时间】:2020-11-15 03:17:55
【问题描述】:
我有一个这样的数据框
date
2018-02-28 09:00:00 78700.0
2018-02-28 10:00:00 78900.0
2018-02-28 11:00:00 78100.0
2018-02-28 12:00:00 78100.0
2018-02-28 13:00:00 77500.0
...
2018-11-30 11:00:00 70000.0
2018-11-30 12:00:00 69800.0
2018-11-30 13:00:00 69800.0
2018-11-30 14:00:00 69600.0
2018-11-30 15:00:00 69400.0
并且我想在每行中将时间序列变量旋转一定长度(在这种情况下,时间步长为 6,因此我希望每行有 6 列)。下面的预期结果类似于 Toeplitz 矩阵的子集。
date 0 1 2 3 4 5
2018-02-28 09:00:00 78700.0 78900.0 78100.0 78100.0 77500.0 77100.0
2018-02-28 10:00:00 78900.0 78100.0 78100.0 77500.0 77100.0 77100.0
2018-02-28 11:00:00 78100.0 78100.0 77500.0 77100.0 77100.0 76300.0
2018-02-28 12:00:00 78100.0 77500.0 77100.0 77100.0 76300.0 76200.0
2018-02-28 13:00:00 77500.0 77100.0 77100.0 76300.0 76200.0 76700.0
... ... ... ... ... ... ...
2018-11-29 12:00:00 72000.0 72000.0 71800.0 71500.0 71500.0 70000.0
2018-11-29 13:00:00 72000.0 71800.0 71500.0 71500.0 70000.0 70000.0
2018-11-29 14:00:00 71800.0 71500.0 71500.0 70000.0 70000.0 69800.0
2018-11-29 15:00:00 71500.0 71500.0 70000.0 70000.0 69800.0 69800.0
2018-11-30 09:00:00 71500.0 70000.0 70000.0 69800.0 69800.0 69600.0
我只是将拆分的块附加到新的 Dataframe 中来完成这个,但它太慢了;( 有没有一种优雅的方式来执行这种转换?
【问题讨论】:
标签: python pandas dataframe scipy