提问人:Sheldon 提问时间:9/4/2023 最后编辑:Sheldon 更新时间:9/4/2023 访问量:58
在 pandas 中从当地时间转换为 UTC
Converting from local time to UTC in pandas
问:
我正在处理包含当地(智利)日期和时间的熊猫数据帧,例如:
local_time |
---|
2/9/2023 23:33 |
2/9/2023 23:39 |
3/9/2023 1:00 |
3/9/2023 1:08 |
我曾经通过对local_time列应用批量时移 () 将这些日期和时间转换为 UTC,但现在我想考虑夏令时的变化。pd.Timedelta(4, "h")
在转换为 UTC 之前,我开始使用以下方法指定时区:tz_location
tz_convert
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
这是正确的处理方式还是我在这里遗漏了什么?
答:
2赞
Jason Baker
9/4/2023
#1
您需要本地化然后转换:
df["local_time"] = pd.to_datetime(df["local_time"]).dt.tz_localize("America/Santiago").dt.tz_convert("UTC")
评论
0赞
Sheldon
9/4/2023
这就是我尝试过的。感谢您的确认。
评论