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

如何将DataFrame中带时区的日期字符串转为datetime对象?pd.to_datetime失效

解决Pandas中带时区的日期字符串转datetime对象问题

你遇到的2022-10-13T00:05:05-07:00是标准ISO 8601格式的带时区日期,一般pd.to_datetime可直接处理,若转换失败,试试以下几种方案:

  • 指定明确格式参数
    直接告知Pandas日期格式,避免自动解析出错:

    import pandas as pd
    
    df = pd.DataFrame({'date': ['2022-10-13T00:05:05-07:00']})
    df['datetime'] = pd.to_datetime(df['date'], format='%Y-%m-%dT%H:%M:%S%z')
    

    其中%z专门匹配时区偏移(如-07:00)。

  • 处理异常值
    若DataFrame内存在格式不规范的日期,添加errors='coerce'参数将无法转换的值转为NaT,方便后续排查:

    df['datetime'] = pd.to_datetime(df['date'], format='%Y-%m-%dT%H:%M:%S%z', errors='coerce')
    
  • 检查并升级Pandas版本
    旧版本Pandas对%z时区格式的支持可能不完善,先查看当前版本:

    print(pd.__version__)
    

    若版本低于1.0.0,建议升级:

    pip install --upgrade pandas
    

另外,转换后的datetime对象会包含时区信息,若需去掉时区转为本地时间,可使用:

df['datetime_naive'] = df['datetime'].dt.tz_localize(None)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:45:37