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

如何将Object类型转换为北美时区的Datetime类型?

解决Pandas保留原始时区解析时间戳的问题

你的timestamp列是带时区偏移的字符串格式,直接用pd.to_datetime转换后仍为Object类型,大概率是因为数据中存在无效值(比如空字符串、空白行),或者Pandas未自动识别到时区格式。要保留原始时区并转为Datetime类型,可以按以下步骤处理:

  • 第一步:清理无效数据
    先过滤掉空值或非时间格式的行,避免解析失败导致列类型仍为Object:

    test = test[test['timestamp'].notna() & (test['timestamp'].str.strip() != '')]
    
  • 第二步:明确格式解析时区
    使用format参数指定包含时区偏移的时间格式,强制Pandas识别并保留原始时区:

    test['timestamp'] = pd.to_datetime(test['timestamp'], format='%Y-%m-%d %H:%M:%S%z')
    

解析完成后,timestamp列的类型会变为datetime64[ns, pytz.FixedOffset],每个时间戳都会保留自身的原始时区偏移(比如-04:00、-05:00),不会被转换为UTC时区,同时支持后续的时区转换、时间计算等操作。

如果你的Pandas版本较新(>=1.1.0),也可以省略format参数,直接让Pandas自动推断格式:

test['timestamp'] = pd.to_datetime(test['timestamp'], infer_datetime_format=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 18:01:26