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

pandas如何将设为索引的无时区BST时间转换为UTC时间

问题原因

你遇到的报错是因为当前的DateTime索引是*无时区信息(tz-naive)*的时间戳,tz_convert仅支持对已绑定时区的时间戳做时区转换,必须先通过tz_localize标记索引对应的实际时区后才能操作。


实现方案

推荐方案(自动适配夏令时规则)

你提到数据实际存储的是BST(英国夏令时,属于欧洲伦敦时区的夏令时状态),只需要先给索引标记伦敦时区,再转UTC即可自动完成1小时偏移,适配夏令时/冬令时切换节点,不会出现时间重叠或缺失问题,代码如下:

# 1. 给无时区的索引标记实际所属的伦敦时区(自动适配BST夏令时规则)
df6.index = df6.index.tz_localize(pytz.timezone('Europe/London'))
# 2. 转换为UTC时区,自动完成时区偏移,得到正确的UTC时间
df6.index = df6.index.tz_convert(pytz.timezone('UTC'))

简易方案(强制统一偏移1小时)

如果你的数据全部处于BST时段,不需要考虑夏令时切换,也可以直接用时间增量操作,无需处理时区:

df6.index = df6.index - pd.Timedelta(hours=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:15:00