在 Pandas 中,对忽略 DST 的时间序列使用 tz_localize 的最佳方法是什么?

Gab*_*abs 6 python localization dst pandas

我有一个时间序列,它是由带有时钟的传感器测量的,该时钟不根据 DST 规则进行调整。因此,日期时间数据与 DST 无关。在 Pandas 中本地化这些数据的最佳方法是什么?

Ian*_*ent 3

您可以先本地化到一个不变的时区,例如 EST,然后将tz_convert()其更改为自动检测夏令时的时区区域,例如美国/东部。

In [16]: a=pd.DataFrame(dict(t=(pd.Timestamp('01/01/2017'), pd.Timestamp('07/01/2017'))))

In [17]: a
Out[17]:
           t
0 2017-01-01
1 2017-07-01

In [18]: a.t=a.t.dt.tz_localize('EST')

In [19]: a
Out[19]:
                          t
0 2017-01-01 00:00:00-05:00
1 2017-07-01 00:00:00-05:00

In [20]: a.t=a.t.dt.tz_convert('US/Eastern')

In [21]: a
Out[21]:
                          t
0 2017-01-01 00:00:00-05:00
1 2017-07-01 01:00:00-04:00
Run Code Online (Sandbox Code Playgroud)

默认情况下,pandas 使用 pytz 作为时区;您可以查看此问题以获取列表或如何自行检查安装中的时区。