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

如何将 Pandas 时区感知的 DateTimeIndex 转换为特定时区的朴素时间戳?

Mary-Kate Olsen
发布: 2024-11-04 12:18:30
原创
982 人浏览过

How to Convert a Pandas Timezone-Aware DateTimeIndex to a Naive Timestamp in a Specific Timezone?

将 Pandas 时区感知的 DateTimeIndex 转换为指定时区的朴素时间戳

Pandas 提供 tz_localize 函数来创建时区感知的时间戳或 DateTimeIndex 。但如果您想撤消此操作怎么办?如何将时区感知的时间戳转换为天真的时间戳而不改变其时区?

问题:

让我们考虑一个时区感知的 DateTimeIndex:

<code class="python">t = pd.date_range(start="2013-05-18 12:00:00", periods=10, freq='s', tz="Europe/Brussels")</code>
登录后复制

将时区设置为 None 会删除时区,但会将时间戳转换为 UTC,从而更改可见时间。

解决方案(Pandas 0.15.0 ):

从 Pandas 0.15.0 开始,可以使用 tz_localize 方法将时区设置为 None。这将删除时区信息,同时保留本地时间:

<code class="python">t.tz_localize(None)</code>
登录后复制

这会产生一个简单的本地时间 DateTimeIndex。

或者,tz_convert(None) 可用于转换为简单的 UTC 时间:

<code class="python">t.tz_convert(None)</code>
登录后复制

性能注意事项:

tz_localize(None) 方法比使用循环替换时区信息要高效得多:

<code class="python">%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</code>
登录后复制

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

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