首页 >后端开发 >Python教程 >如何在保留时区的同时将时区感知的 Pandas DateTimeIndex 转换为朴素时间戳?

如何在保留时区的同时将时区感知的 Pandas DateTimeIndex 转换为朴素时间戳?

Linda Hamilton
Linda Hamilton原创
2024-11-05 10:13:02450浏览

How to Convert Timezone-Aware Pandas DateTimeIndex to Naive Timestamps While Preserving Timezone?

将时区感知的 Pandas DateTimeIndex 转换为朴素时间戳,同时保留时区

简介

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')

额外转换为 UTC

除了本地时间,您还可以转换使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn