在 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,然后无法丢弃错误时间
Pandas:如何将 cProfile 输出存储在 pandas DataFrame 中?
我可以将 Pyspark RDD 用作 Pandas DataFrame 吗? Pyspark/spark 在数据分析中对 Pandas 的限制?