gpt4 book ai didi

python - 为什么 Pandas 不会产生模糊的时间错误?

转载 作者:太空宇宙 更新时间:2023-11-03 15:48:28 24 4
gpt4 key购买 nike

2016年daylight savings time于美国东部时间 2016 年 3 月 13 日凌晨 2 点开始,并于 2016 年 11 月 6 日凌晨 2 点结束。因此,2016-03-13 02:30:00 不是有效的时间戳,并且 2016-11-06 01:30:00 出现了两次。

我希望这段代码会抛出有关不明确和不存在的时间的错误,但事实并非如此:

from pandas import Timestamp

no_such_time = "2016-03-13 02:30:00"
ambiguous_time = "2016-11-06 01:30:30"
est = 'US/Eastern'
utc = 'UTC'

ts1 = Timestamp(no_such_time, tz=est).tz_convert(utc)
ts2 = Timestamp(ambiguous_time, tz=est).tz_convert(utc)

为什么 Pandas 认为这两个时间都是有效时间?

我使用的是 Pandas 0.14.1。

最佳答案

在此代码中:

ts1 = pd.Timestamp(no_such_time, tz=est)
ts2 = pd.Timestamp(ambiguous_time, tz=est)

pandas 会将这两个时间转换为时区感知时间戳。它似乎在没有意识到潜在问题的情况下这样做(IE,它是非常宽容的)。转换后,时间戳已在内部存储在具有关联时区的 UTC 中。因此,后续调用 tz_convert 将正常工作:

ts1 = pd.Timestamp(no_such_time, tz=est).tz_convert(utc)
ts2 = pd.Timestamp(ambiguous_time, tz=est).tz_convert(utc)

如果您实际上想确定时间戳是否有误,可以通过以下方式完成:

ts1 = pd.Timestamp(no_such_time).tz_localize(est)
ts2 = pd.Timestamp(ambiguous_time).tz_localize(est)

在这些情况下,pandas 将分别引发 NonExistentTimeErrorAmbigouslyTimeError

关于python - 为什么 Pandas 不会产生模糊的时间错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41552427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com