2016-06-03 3 views
1

Ich habe eine Variable in meinem Datenrahmen, die wiein Pandas Wie bekomme ich einen UTC TimeStamp (zu einer bestimmten Stunde) von einer DateTime?

Day 
2015-01-01 
2015-02-01 

sieht ich eine Zeitvariable erzeugen möchte, die mir den UTC-Zeitstempel der entsprechenden EST Zeitstempel des Tages in Tag gibt bei 9:00 Uhr morgens (immer 9:00 Uhr, frag nicht warum ...).

Genau, in Anbetracht der Ausgabe für Zeile eins, meine ich von 2015-01-01 zu 2015-01-01 9:00 EST zu 2015-01-01 14:00 UTC gehen. Wie kann ich das in Pandas machen?

Danke!

Antwort

1

das ist wahrscheinlich die bessere Lösung

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') 

Nachdem Sie die Zeitreihen erstellt haben, können Sie sie mit .tz_localize in einer Zone lokalisieren und dann konvertieren.

+0

ja Dank aber der Tag vom Tag Variable kommen muss, nicht hart codierten im Code! –

1

Wenn Sie möchten, dass es mit einzelnen Variablen tun:

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