首页 > 后端开发 > Python教程 > 如何在不更改时区的情况下将时区感知的 Pandas DateTimeIndex 转换为朴素时间戳?

如何在不更改时区的情况下将时区感知的 Pandas DateTimeIndex 转换为朴素时间戳?

Barbara Streisand
发布: 2024-11-04 13:04:30
原创
1093 人浏览过

How to Convert a Timezone-Aware Pandas DateTimeIndex to Naive Timestamps Without Changing the Timezone?

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

问题:

如何将时区感知的 pandas Timestamp 或 DateTimeIndex 转换为天真的 Pandas,而不修改其时区?

原始代码:

使用 tz = None 删除时区,同时还将时间转换为 UTC:

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

建议解决方案:

  • 从 pandas 0.15.0 开始:

    使用 tz_localize(None) 删除时区,导致本地时间:

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

    或者使用 tz_convert(None) 删除时区并转换为 UTC:

    <code class="python">t.tz_convert(None)</code>
    登录后复制
  • Pre-pandas 0.15.0:

    使用列表理解手动将时区信息替换为 None 。但是,此方法的效率低于内置方法。

    <code class="python">pd.DatetimeIndex([i.replace(tzinfo=None) for i in t])</code>
    登录后复制

示例:

<code class="python">t = pd.date_range(start="2013-05-18 12:00:00", periods=2, freq='H', tz="Europe/Brussels")

# Using 'tz_localize(None)'
t_naive_local = t.tz_localize(None)

# Using 'tz_convert(None)'
t_naive_utc = t.tz_convert(None)

print(t_naive_local)
print(t_naive_utc)</code>
登录后复制

输出:

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

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

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