我想使用pandas tz_localize本地化日期时间系列。该系列跨越DST日期(例如德国CET的25Oct2015)。我通常用
做到这一点import pandas as pd
T = ['25/10/2015 02:59:00','25/10/2015 02:00:00','25/10/2015 02:01:00']
pd.to_datetime(T).tz_localize('CET',ambiguous='infer')
但是当时间序列有重复时 - 即使它们以明确的方式排序 - 我收到错误:
T = ['25/10/2015 02:59:00','25/10/2015 02:59:00','25/10/2015 02:00:00','25/10/2015 02:01:00']
pd.to_datetime(T).tz_localize('CET',ambiguous='infer')
AmbiguousTimeError: There are 2 dst switches when there should only be 1.
这似乎是一个不必要的限制,因为推断应该是非常直接的。有解决方法或解决方案,还是我需要编写自己的推理方法?
答案 0 :(得分:1)
最新版本中修复了许多与DST相关的错误,0.19.0rc1现已推出
In [1]: pd.__version__
Out[1]: u'0.19.0rc1'
In [2]: t = ['25/10/2015 02:59:00', '25/10/2015 02:00:00', '25/10/2015 02:01:00']
In [3]: pd.to_datetime(t).tz_localize('CET',ambiguous='infer')
Out[3]: DatetimeIndex(['2015-10-25 02:59:00+02:00', '2015-10-25 02:00:00+01:00', '2015-10-25 02:01:00+01:00'], dtype='datetime64[ns, CET]', freq=None)