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

Pandas:移除时区重采样后如何恢复数据列的时区信息

如何保存并恢复Pandas重采样时的时区信息

嘿,这事儿好办!你只需要在移除时区之前先把原始的时区信息存下来,等重采样完成后再把它加回去就行。具体步骤如下:

步骤1:保存原始时区信息

在执行tz_localize(None)移除时区前,先提取并保存timestamp列的时区:

# 提取原始时区(确保你的timestamp列所有值时区一致)
original_timezone = df['timestamp'].dt.tz

小提示:如果你的timestamp列里存在多个不同时区的值,建议先统一时区再操作,不然保存单个时区会有问题哦。

步骤2:移除时区并执行重采样

这部分就是你原本的操作,没问题:

# 移除时区转为naive datetime
df['timestamp'] = df['timestamp'].dt.tz_localize(None)
# 按小时重采样取均值
df = df.resample('1H', on='timestamp').mean()

步骤3:恢复时区到重采样后的索引

重采样完成后,你的timestamp会变成DataFrame的索引,直接给索引加上之前保存的时区就行:

# 给重采样后的索引恢复原始时区
df.index = df.index.tz_localize(original_timezone)

完整代码示例

把上面的步骤整合起来就是:

# 保存原始时区
original_timezone = df['timestamp'].dt.tz

# 移除时区
df['timestamp'] = df['timestamp'].dt.tz_localize(None)

# 重采样操作
df = df.resample('1H', on='timestamp').mean()

# 恢复时区
df.index = df.index.tz_localize(original_timezone)

这样操作后,重采样后的时间索引就会和你原始数据的时区一致啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 15:54:07