2015-12-02 15 views
6

Datetime'yı (2014-12-23 00:00:00) unixtime olarak değiştirmek istiyorum. Datetime işleviyle denedim ama işe yaramadı. Datetime damgalarını bir dizide aldım.Pandalar datetime unixtime için

Zeit =np.array(Jahresgang1.ix[ :,'Zeitstempel']) 
t = pd.to_datetime(Zeit, unit='s') 
unixtime = pd.DataFrame(t) 
print unixtime 

Teşekkür

+0

İstediğinizi yapmak gibi görünüyor: '(t.astype (np.int64)/1e6) .astype (np.uint64)' – EdChum

+0

Başka bir yöntem: '(t - dt.datetime (1970,1,1)) dt .total_seconds() ' – EdChum

+0

Tekrar çok teşekkürler. Benim için doğru cevaplar alsways :) –

cevap

8

Sana timedelta oluşturmak için tarih 1970-1-1 çıkarma ve ardından niteliğini total_seconds erişebilir düşünüyorum çok: En d_type aşağıdaki datetime64` sonra `olduğunu varsayarsak

In [130]:  
s = pd.Series(pd.datetime(2012,1,1)) 
s 

Out[130]: 
0 2012-01-01 
dtype: datetime64[ns] 

In [158]: 
(s - dt.datetime(1970,1,1)).dt.total_seconds() 

Out[158]: 
0 1325376000 
dtype: float64 
+0

Unixtime'a nasıl 1h ekleyebilirim , çünkü UTC'de yaşıyorum: + 1h –

+0

Yukarıdaki hesaplamalar öncesinde bir zaman çizelgesi ekleyebilirsiniz: 's + pd.Timedelta (1, 'h')' veya sizin durumunuzda t + pd.Timedelta (1, 'h ') ' – EdChum

+1

Aslında, doğru zaman dilimini bilmek için doğru yol, örn. s.dt.tz_localize ('utc') 'veya istediğiniz zaman dilimi ne olursa olsun – EdChum