时区从GMT转换为UTC-4

问题描述

我有一个带有日期时间对象的数据框,如下所示(GMT)

blah    dateuno dateduo
a   29/06/2020 13:27    29/06/2020 17:44
b   19/05/2020 11:15    19/05/2020 19:25
c   8/06/2020 11:50 8/06/2020 19:51
d   9/06/2020 11:37 9/06/2020 19:38
e   20/07/2020 11:44    20/07/2020 19:47
f   21/07/2020 11:02    21/07/2020 19:08
g   23/07/2020 11:01    23/07/2020 19:05

我该如何将这些日期时间转换为戊二烯时间,如此处https://www.timeanddate.com/time/zone/usa/pennsylvania

贯穿此数据框的整个列?

解决方法

从样本的格式来看,您需要首先使用dayfirst=Trueutc=True组成to_datetime,以正确地描述输入。然后可以tz_convert到适当的时区。例如:

df['dateuno'] = pd.to_datetime(df['dateuno'],dayfirst=True,utc=True)
df['dateduo'] = pd.to_datetime(df['dateduo'],utc=True)

df['dateuno'] = df['dateuno'].dt.tz_convert('US/Eastern')
df['dateduo'] = df['dateduo'].dt.tz_convert('US/Eastern')

# df
#   blah                   dateuno                   dateduo
# 0    a 2020-06-29 09:27:00-04:00 2020-06-29 13:44:00-04:00
# 1    b 2020-05-19 07:15:00-04:00 2020-05-19 15:25:00-04:00
# 2    c 2020-06-08 07:50:00-04:00 2020-06-08 15:51:00-04:00
# 3    d 2020-06-09 07:37:00-04:00 2020-06-09 15:38:00-04:00
# 4    e 2020-07-20 07:44:00-04:00 2020-07-20 15:47:00-04:00
# 5    f 2020-07-21 07:02:00-04:00 2020-07-21 15:08:00-04:00
# 6    g 2020-07-23 07:01:00-04:00 2020-07-23 15:05:00-04:00