我正在使用包含本地(智利)日期和时间的 pandas 数据框,例如:
当地时间 |
---|
2023/9/2 23:33 |
2/9/2023 23:39 |
2023年3月9日1:00 |
2023/3/9 1:08 |
我曾经通过对我的
local_time列应用批量时移 (
pd.Timedelta(4, "h")
) 将这些日期和时间转换为 UTC,但现在我想考虑夏令时的变化。
我开始使用
tz_location
指定时区,然后使用 tz_convert
转换为 UTC:
import pandas as pd
from datetime import datetime
df = pd.read_csv("Example_dataset.csv")
pd.to_datetime(pd.to_datetime(df['local_time']).apply(lambda x: datetime.strftime(x, '%d-%m-%Y %H:%M:%S'))).dt.tz_localize('America/Santiago').dt.tz_convert('UTC')
这似乎适用于此处提供的示例数据集:2023 年 9 月 2 日的数据偏移了 4 小时,而 9 月 3 日的数据偏移了 3 小时。
0 2023-09-03 03:33:00+00:00
1 2023-09-03 03:39:00+00:00
2 2023-09-03 04:00:00+00:00
3 2023-09-03 04:08:00+00:00
这是正确的操作方法还是我在这里遗漏了什么?
您需要本地化然后转换:
df["local_time"] = pd.to_datetime(df["local_time"]).dt.tz_localize("America/Santiago").dt.tz_convert("UTC")