在 Pandas 中,将 tz_localize 用于忽略 DST 的时间序列的最佳方法是啥?

Posted

技术标签:

【中文标题】在 Pandas 中,将 tz_localize 用于忽略 DST 的时间序列的最佳方法是啥?【英文标题】:In Pandas, what is the best way to use tz_localize for a time series which ignores DST?在 Pandas 中,将 tz_localize 用于忽略 DST 的时间序列的最佳方法是什么? 【发布时间】:2018-03-08 09:20:14 【问题描述】:

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

【问题讨论】:

【参考方案1】:

您可以先本地化到不变的时区,例如 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

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

【讨论】:

以上是关于在 Pandas 中,将 tz_localize 用于忽略 DST 的时间序列的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Python,Pandas:tz_localize AmbiguousTimeError:无法用非 DST 日期推断 dst 时间

Python pandas tz_localize 抛出 NonExistentTimeError,然后无法丢弃错误时间

python中datetime怎么设置时区

在熊猫中剥离时区信息

Pandas:如何将 cProfile 输出存储在 pandas DataFrame 中?

我可以将 Pyspark RDD 用作 Pandas DataFrame 吗? Pyspark/spark 在数据分析中对 Pandas 的限制?