You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中解析含US/Eastern时区的字符串为datetime类型?

问题

给定元组列表:

[('20230728 09:30:00 US/Eastern', 194.7, 195.26)]

创建DataFrame并将time列设为索引:

df = pd.DataFrame(
    received_historic_data, columns=["time", "open", "close"]
).set_index("time")

尝试用df.index = pd.to_datetime(df.index)将索引从字符串转为datetime类型时,Pandas无法解析其中的US/Eastern时区信息,如何解决?

解决方案

方法1:用dateutil.parser解析带时区字符串

借助dateutil的解析能力处理含时区的时间字符串(需确保安装python-dateutil,多数Pandas环境默认包含):

from dateutil import parser

df.index = df.index.map(parser.parse)

解析后索引会变为带US/Eastern时区的datetime64[ns, US/Eastern]类型。

方法2:直接在pd.to_datetime中指定时区

通过tz参数明确指定时区,Pandas会自动匹配字符串中的时区标识:

df.index = pd.to_datetime(df.index, tz='US/Eastern')

若字符串格式特殊,可添加infer_datetime_format=True提升解析效率:

df.index = pd.to_datetime(df.index, tz='US/Eastern', infer_datetime_format=True)

方法3:先解析无时区时间,再绑定时区

如果前两种方法失效,可先解析为无时区datetime,再用tz_localize添加对应时区:

import pytz

df.index = pd.to_datetime(df.index, format='%Y%m%d %H:%M:%S').tz_localize(pytz.timezone('US/Eastern'))

这种方法适合时区信息固定,且时间格式标准的场景。

内容的提问来源于stack exchange,提问作者Jason Strimpel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 02:11:08