首页 > 后端开发 > Python教程 > 如何将 Pandas 中的时区感知时间戳转换为本地时间?

如何将 Pandas 中的时区感知时间戳转换为本地时间?

Mary-Kate Olsen
发布: 2024-11-05 02:05:01
原创
330 人浏览过

How to Convert a Timezone-Aware Timestamp to Naive Local Time in Pandas?

如何将 Pandas 中的时区感知时间戳转换为本地时间

在 pandas 中,tz_localize 函数用于创建时间戳或时区感知的 DateTimeIndex。但是,在处理已经识别时区的数据时,可能需要将其转换回原始时间戳,同时保留本地时间的时区信息。

一个选项是将时区设置为 None ,但这会导致时间转换为 UTC。为了避免这种情况,pandas 提供了 tz_localize(None) 函数,该函数可以有效地删除时区信息,同时保留本地时区中用户可见的时间。

例如,考虑以下时区-aware DateTimeIndex:

t = pd.date_range(start="2013-05-18 12:00:00", periods=2, freq='H', tz="Europe/Brussels")
登录后复制

使用 tz_localize(None),我们可以将其转换为本地时间:

t_naive_local = t.tz_localize(None)
登录后复制

生成的索引将具有与之前相同的时间,但是没有时区信息:

t_naive_local

DatetimeIndex(['2013-05-18 12:00:00', '2013-05-18 13:00:00'],
               dtype='datetime64[ns]', freq='H')
登录后复制

此外,pandas 还提供了 tz_convert(None) 函数,该函数删除时区信息并将时间转换为 UTC,从而得到朴素的 UTC 时间。

这种转换比使用 datetime.replace 方法的替代方法要高效得多,如以下时间所示:

%timeit t.tz_localize(None)
1000 loops, best of 3: 233 µs per loop

%timeit pd.DatetimeIndex([i.replace(tzinfo=None) for i in t])
10 loops, best of 3: 99.7 ms per loop
登录后复制

通过利用这些函数,可以轻松进行转换将时区感知的 pandas 数据转换为本地时间或 UTC,保留用户可见的时间并提高数据处理的效率。

以上是如何将 Pandas 中的时区感知时间戳转换为本地时间?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板