2012-12-22 18 views
6

değerlerinin saat dilimi nasıl dönüştürülür datetime64[ns] türünde değerlere sahip bir panda serisi var. Tarihler EST saat diliminde ve bunları UTC saat dilimine dönüştürmek istiyorum.Pandalar Serisi

Ör

s=pd.Series(pd.date_range('2012-1-1 1:30',periods=3,freq='min')) 

Nasıl UTC s dönüştürmek için

?

(Aslında bu yüzden onun tz parametresini kullanarak date_range() kullanmayan Not bir seçenek değildir.)

cevap

7

Güncelleme:

In [11]: s.dt.tz_localize('UTC') 
Out[11]: 
0 2012-01-01 01:30:00+00:00 
1 2012-01-01 01:31:00+00:00 
2 2012-01-01 01:32:00+00:00 
dtype: datetime64[ns, UTC] 
: son pandalar, sen bu yayın için dt erişimci kullanabilirsiniz

İşte bir yolu (tz zaten ayarlanmış olup olmadığını bağlı bu olabilir bir tz_convert yerine tz_localize yerine):

In [21]: from pandas.lib import Timestamp 

In [22]: s.apply(lambda x: x.tz_localize('UTC')) 
Out[22]: 
0 2012-01-01 06:30:00+00:00 
1 2012-01-01 06:31:00+00:00 
2 2012-01-01 06:32:00+00:00 
+0

Bu çalışır, ancak gerçekten yavaş. Bunu yapmak için yayın temelli bir yolu yok mu? –

+1

Evet! Kullanın 's.dt.tz_localize' (bu 2012'de mevcut değildi :)) –

+0

bunu yeni bir cevap olarak yayınlayabilir misiniz? –