【发布时间】:2014-07-02 06:03:54
【问题描述】:
Python 的 Pandas 能够使用 (at least) date_range 函数提供规则间隔的时间间隔:
>>> import pandas as pd
>>> import pytz, datetime
>>> from pprint import pprint as pp
>>> tzto = pytz.timezone("America/Toronto")
>>> oct17 = tzto.localize(datetime.datetime(2014, 10, 17, 8))
>>> #get every Friday from Oct 17 (a Friday) for 5 weeks...
>>> pp(pd.date_range(oct17, periods=5, freq="W-FRI").tolist())
[Timestamp('2014-10-17 08:00:00-0400', tz='America/Toronto'),
Timestamp('2014-10-24 08:00:00-0400', tz='America/Toronto'),
Timestamp('2014-10-31 08:00:00-0400', tz='America/Toronto'),
Timestamp('2014-11-07 07:00:00-0500', tz='America/Toronto'),
Timestamp('2014-11-14 07:00:00-0500', tz='America/Toronto')]
很遗憾,当间隔跨越 DST 更改时,初始时间会丢失。如上图所示,由于 2014 年 11 月 2 日多伦多的 DST 计划更改,上述最后两个条目已移回早上 7 点。
如何构建系列以保持跨 DST 边界的时间相同?即:在上面的示例中,上面的每个条目都应该是早上 8 点,而不是在 DST 跳转后转移到早上 7 点。
【问题讨论】: