2016-06-03 1 views
1

У меня есть переменная в моей dataframe, которая выглядит какв Pandas, как получить UTC TimeStamp (в определенный час) из DateTime?

Day 
2015-01-01 
2015-02-01 

Я хотел бы, чтобы создать временную переменную, которая дает мне UTC метку времени соответствующего EST метки времени дня в день в 9:00 утра (всегда 9 утра, не спрашивайте, почему ...).

Именно поэтому, учитывая выход для первой строки, я имею в виду переход от 2015-01-01 к 2015-01-01 9:00 EST в 2015-01-01 14:00 UTC. Как я могу это сделать в Пандах?

Спасибо!

ответ

1

то будет, вероятно, лучшим решением

df['time']=df['Day'].apply(lambda x: x + ' 9:00') 
df['time_utc']=df['time'].apply(lambda x: `pd.Timestamp(x).tz_localize('US/Eastern').tz_convert('UTC'))` 
3
df.Day = pd.date_range('1/1/2015 09:00', periods=10, freq='D') 
df.Day = df.Day.tz_localize('UTC') 
df.Day_converted = df.Day.tz_convert('US/Eastern') 

После создания временных рядов вы можете локализовать его в зоне с .tz_localize и затем преобразовать.

+0

да спасибо, но на следующий день должен прийти с переменной день, а не жестко в коде! –

1

Если вы хотите сделать это с отдельными переменными:

import pandas as pd 
from datetime import timedelta 

ts = pd.Timestamp('2015-01-01') # Going from 2015-01-01 to ... 
ts = ts + timedelta(hours=9)  # 2015-01-01 9:00 ... 
ts = ts.tz_localize('US/Eastern') # EST to 
ts = ts.tz_convert('UTC')   # 2015-01-01 14:00 UTC