本地化pandas datetime索引时出现NonExistentTimeError

时间:2014-08-12 14:17:06

标签: python django pandas timezone

我正在使用dataframe.index = dataframe.index.tz_localize('Iran')来本地化我的Pandas数据帧日期时间索引。问题是Django上升了NonExistentTimeError

Django setting.py时区设置为我当地的时区。 TIME_ZONE = 'Iran'

数据帧:

2014-08-11 12:00:00+00:00  3076.366
2014-08-11 11:45:00+00:00  3076.367
2014-08-11 11:30:00+00:00  3076.385
2014-08-11 11:15:00+00:00  3076.417
2014-08-11 11:00:00+00:00  3076.466
2014-08-11 10:45:00+00:00  3076.532
2014-08-11 10:30:00+00:00  3076.611
2014-08-11 10:15:00+00:00  3076.702
2014-08-11 10:00:00+00:00  3076.802
2014-08-11 09:45:00+00:00  3076.910

In [112]:dataframe.index.tzinfo
In [113]:<StaticTzInfo 'GMT'>

[10行x 1列]

1 个答案:

答案 0 :(得分:4)

当您尝试本地化在您指定的时区中不存在的NonExistentTimeError时,datetime会引发异常2014-09-21 11:30:00

如果您想知道时间如何不存在&#34;,请考虑许多时区的当地时间受pytz的影响。它也偶尔会受到地方政府变化的影响。

在您的特定情况下,您展示的所有值都是2014年8月11日。伊朗的夏令时回落过渡直到2014年9月21日才发生,daylight saving time 。如果您的某个值为'Asia/Tehran',那么它就有意义了。我只能得出结论,你没有显示导致错误的实际数据。请检查您的数据。

此外,您应该使用全时区名称'Iran'。虽然{{1}}现在可以正常工作,但它只是一个向后兼容性链接,您应该使用规范区域名称。另请参阅as shown here