我想用tz_localize本地化一个日期时间序列。该系列日期已超过DST日期(例如,德国CET的日期为2015年10月25日)。我通常用

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.


这似乎是不必要的限制,因为推断应该很简单。是否有解决方法或解决方案,或者我需要编写自己的推断方法?

最佳答案

最新版本中修复了许多与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)

关于python - Pandas tz_localize:在具有重复项的数据中本地化时区时推断dst,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39563507/

10-11 07:39