本地化熊猫日期时间索引时出现 NonExistentTimeError

Mor*_*adi 5 python django timezone pandas

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

Djangosetting.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'>
Run Code Online (Sandbox Code Playgroud)

[10 行 x 1 列]

Mat*_*int 6

当您尝试本地化在您指定的时区中不存在的pytz时,NonExistentTimeError会引发异常。datetime

如果您想知道时间怎么可能“不存在”,请考虑许多时区的本地时间受夏令时的影响。它也偶尔会受到地方政府所做的改变的影响。

在您的特定情况下,您显示的所有值都是 2014 年 8 月 11 日。伊朗的夏令时回退过渡要到 2014 年 9 月 21 日才会发生,如下所示。如果您的价值观之一是2014-09-21 11:30:00,那么这将是有道理的。我只能得出结论,您没有显示导致错误的实际数据。请检查您的数据。

此外,您应该使用完整的时区名称,即'Asia/Tehran'. 虽然'Iran'现在可以工作,但它只是一个向后兼容的链接,你应该使用规范的区域名称。另请参阅Wikipedia 上的此列表