pandas使用正确的时区将datetime转换为epoch

时间:2016-09-29 13:02:48

标签: datetime pandas

我有一个像这样的简单数据框

a

我想将此日期时间转换为具有正确时区的纪元。所以我在做

                Started
job
446 2016-09-29 08:53:24
447 2016-09-29 08:54:37
448 2016-09-29 08:55:49
449 2016-09-29 08:57:00
450 2016-09-29 08:58:12

这有效,但我得到的时代是UTC。我怎样才能获得EDT?

1 个答案:

答案 0 :(得分:1)

我认为你需要tz_localize

#dtype of Started is datetime
df['started_epoch'] = df.Started.dt.tz_localize('EST5EDT').astype(np.int64)//10**9
print (df)
   job             Started  started_epoch
0  446 2016-09-29 08:53:24     1475153604
1  447 2016-09-29 08:54:37     1475153677
2  448 2016-09-29 08:55:49     1475153749
3  449 2016-09-29 08:57:00     1475153820
4  450 2016-09-29 08:58:12     1475153892

我尝试测试它似乎有效:

df['started_epoch'] = df.Started.dt.tz_localize('EST5EDT').astype(np.int64)//10**9
df['started_epoch1'] = df.Started.astype(np.int64)//10**9
print (df)
   job             Started  started_epoch  started_epoch1
0  446 2016-09-29 08:53:24     1475153604      1475139204
1  447 2016-09-29 08:54:37     1475153677      1475139277
2  448 2016-09-29 08:55:49     1475153749      1475139349
3  449 2016-09-29 08:57:00     1475153820      1475139420
4  450 2016-09-29 08:58:12     1475153892      1475139492