python - 本地化 Pandas 日期时间索引时出现 NonExistentTimeError

标签 python django pandas timezone

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

Django setting.py 时区设置为我本地的时区。 TIME_ZONE = '伊朗'

数据框:

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 列]

最佳答案

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

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

在您的特定情况下,您显示的所有值都是在 2014 年 8 月 11 日。伊朗的夏令时回退过渡直到 2014 年 9 月 21 日才发生,as shown here .如果您的值之一是 2014-09-21 11:30:00,那么它就有意义了。我只能得出结论,您没有显示导致错误的实际数据。请检查您的数据。

此外,您应该使用完整的时区名称,即 'Asia/Tehran'。虽然 'Iran' 现在可能有效,但它只是一个向后兼容链接,您应该改用规范区域名称。另见 this list on Wikipedia .

关于python - 本地化 Pandas 日期时间索引时出现 NonExistentTimeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25266675/

相关文章:

python - 尝试将对象转换为 DateTime,出现 TypeError

python - Django 2.0 升级 - urls.W001 警告误报

django - 切片时查询集被评估?

ruby-on-rails - 单个 AWS 实例中的多个 Web 框架?

python - 如何获得 DataFrame 中列值的组合结果?

python - 在 2 个数据框中执行合并

python - 类型错误 : 'Popen' object is not callable

django - 在 aws 中使用 Auto Scaling 组和 ELB 构建系统

sql-server - 在没有 hadoop 的情况下,从 SQL Server 中的表中将 1 TB 数据提取到 Parquet 文件的更快方法是什么

python - 在python中将分隔字符串转换为分层JSON