Pandas 提供了 tz_localize 函数,用于将时区信息添加到时间戳和日期时间指数。然而,这里的问题涉及反向操作:将时区感知时间戳转换为天真的时间戳,同时保留原始时区。
从 Pandas 0.15.0 开始,已实现 tz_localize(None) 方法来促进此转换。当应用于时区感知的 DateTimeIndex 时,它会删除时区信息,从而导致本地时间。
import pandas as pd t = pd.date_range(start="2013-05-18 12:00:00", periods=2, freq='H', tz="Europe/Brussels") t_naive = t.tz_localize(None) # Naive local time print(t_naive) # Output: # DatetimeIndex(['2013-05-18 12:00:00', '2013-05-18 13:00:00'], dtype='datetime64[ns]', freq='H')
除了本地时间,您还可以转换使用 tz_convert(None) 方法转换为原始 UTC 时间。
t_utc_naive = t.tz_convert(None) # Naive UTC time print(t_utc_naive) # Output: # DatetimeIndex(['2013-05-18 10:00:00', '2013-05-18 11:00:00'], dtype='datetime64[ns]', freq='H')
与使用 datetime.replace 解决方案相比,tz_localize(None) 方法非常高效。对于较大的 DateTimeIndex,性能提升可能非常显着。
以上是如何在保留时区的同时将时区感知的 Pandas DateTimeIndex 转换为朴素时间戳?的详细内容。更多信息请关注PHP中文网其他相关文章!