尝试在 for 循环中将两个 Pandas DF 附加在一起时出现此错误:
Aggdata=Aggdata.append(Newdata)
这是完整的错误:
File "pandas\tslib.pyx", line 4096, in pandas.tslib.tz_localize_to_utc (pandas
\tslib.c:69713)
pytz.exceptions.NonExistentTimeError: 2017-03-12 02:01:24
但是,在我的文件中,我没有这样的时间戳,但我确实有像 03/12/17 00:45:26 或 03/12/17 00:01:24 这样的时间戳。夏令时前 2 小时。如果我手动删除有问题的行,我会在 3 月 12 日凌晨 12 点到凌晨 1 点之间的下一行得到同样的错误。
我的原始日期/时间列没有 TZ 信息,但我计算了 EST 中的另一列,在连接之前将其本地化为 EST,并带有时间和 TZ 信息:
`data['EST_DateTimeStamp']=pd.DatetimeIndex(pd.to_datetime(data['myDate'])).tz_localize('US/Eastern').tz_convert('US/Eastern')`
在这里做了一些研究,我知道 12 号凌晨 2 点到 3 点应该有这样的错误,但为什么午夜到凌晨 1 点。那么我是否错误地对其进行了本地化?然后为什么错误出现在追加行,而不是本地化行?
我能够在一个非常简单的 MCVE 中重现此行为,保存在这里: https://codeshare.io/GLjrLe
令我难以置信的是,错误是在第三次追加时引发的,并且只有在接下来的 3 次追加之后才会出现。换句话说,如果我注释掉附加的最后 3 个副本,它工作正常。无法想象发生了什么。
感谢阅读。
最佳答案
如果其他人可能仍然觉得这有帮助:
与@hashcode55 讨论,解决方案是在我的服务器上升级 Pandas,因为这可能是我以前版本的模块中的一个错误。
关于python - 为什么我在 2017-03-12 的 12 点到凌晨 1 点之间的时间戳在 python 中得到 NonExistentTimeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42826784/