Python如何给DateTimeIndex加1小时?GMT转CET时区怎么实现?
解决方案
方案1:GMT时区索引转换为CET时区(推荐)
该方案会自动适配CET的夏令时/冬令时偏移规则(冬令时GMT+1、夏令时GMT+2),不会出现跨夏令时的时间错误,是时区转换的标准实现:
# 索引已绑定GMT时区时直接执行转换即可 df.index = df.index.tz_convert('CET')
转换后你给出的示例索引会变为:
2016-11-10 02:00:00+01:00 2016-11-10 03:00:00+01:00
方案2:直接给DateTimeIndex统一增加1小时
如果你不需要修改索引的时区属性,仅需要强制将时间数值偏移1小时,可直接对索引做时间增量操作:
df.index = df.index + pd.Timedelta(hours=1)
操作后索引仍保留GMT时区属性,你给出的示例索引会变为:
2016-11-10 02:00:00+00:00 2016-11-10 03:00:00+00:00
注意事项
- 如果当前索引是未绑定时区的 naive DateTimeIndex,需要先执行
df.index = df.index.tz_localize('GMT')给索引绑定GMT时区,再执行上述操作。 - 两种方案按需选择:需要时区属性变为CET用方案1,仅需要时间数值加1、保留GMT时区用方案2。
内容的提问来源于stack exchange,提问作者MathMan 99
相关产品推荐
相关产品推荐

