Python Pandas从UTC列添加本地时间列

时间:2018-11-26 13:44:43

标签: python pandas datetime

我有一个带有UTC列的Panda df(不是时间序列索引,不是UTC日期字段)。数据在df中显示为:

  

2017-11-13 05:00:00

我需要创建一个新列(保持UTC列不变),但是要使用localtime并将其显示为:

  

2017-11-13 00:00:00

(假设美国/东部)

我尝试过:

df['DATE_TIME_UTC'].dt.tz_localize('US/Eastern')

但是显示:

  

2017-11-13 05:00:00-5:00

,当被推送到数据库时,它将再次显示UTC时间。请告知如何在新字段中将日期时间存储为本地时间。

谢谢

1 个答案:

答案 0 :(得分:1)

日期时间当前是时区的天真,只有您用户知道它在UTC中。

您需要使用以下命令将其转换为时区感知的日期时间

# Create Timezone Aware using tz_localize
df['DATE_TIME_UTC'] = df['DATE_TIME_UTC'].dt.tz_localize('UTC')

接下来,您要将其转换为本地时区

# Convert to local timezone
df['DATE_TIME_LOCAL'] = df['DATE_TIME_UTC'].dt.tz_convert('US/Eastern')

现在,您应该拥有所需的时区信息。