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

在Pandas中将智利本地时间转UTC:当前方法是否正确?

你的实现核心逻辑正确,但代码有冗余,还有几个要点需要注意

核心逻辑的正确性

你通过tz_localize('America/Santiago')绑定智利本地时区,再用tz_convert('UTC')转换的思路完全正确——Pandas会自动根据America/Santiago时区的夏令时规则(智利通常在每年9月切换到夏令时,UTC偏移从-4变为-3)处理时间转换,你的测试结果也验证了这一点,核心逻辑没问题。

代码冗余优化

你的代码里做了两次pd.to_datetime转换,还额外用strftime转成字符串再转回时间,属于冗余操作。可以简化成:

import pandas as pd

df = pd.read_csv("Example_dataset.csv")
# 直接解析时间并绑定时区、转换UTC
df['utc_time'] = pd.to_datetime(df['local_time'], format='%d/%m/%Y %H:%M')\
                   .dt.tz_localize('America/Santiago')\
                   .dt.tz_convert('UTC')

需要注意的遗漏要点

  • 显式指定解析格式:虽然Pandas能自动识别d/m/Y H:M格式,但如果数据中存在类似10/9/2023这种歧义日期(可能被误解析为月/日/年),一定要显式添加format='%d/%m/%Y %H:%M',避免解析错误。
  • 处理时区切换的异常时间:智利夏令时切换时会出现「跳过1小时」(夏令时开始)或「重复1小时」(夏令时结束)的情况,如果原始数据包含这些无效/重复时间,tz_localize默认会抛出错误。此时可根据业务需求设置errors参数:比如errors='coerce'将无效时间转为NaT,或者errors='ignore'跳过绑定(不推荐)。
  • 环境时区依赖:确保Python环境支持America/Santiago时区——Pandas在Python 3.9+默认使用zoneinfo模块(内置时区数据库),旧版本可能需要安装pytz库,若遇到时区不存在的错误,先检查依赖是否齐全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 21:44:54