2016-03-21 19 views
1

Dizeleri zaman damgalarına dönüştürmek için pandalar kullanıyorum. '2016-03-12 18:09:19 PST''un bir dizesi var.Pandalar to_datetime imkansız zamanlar üretir

aşağıdaki yaparsanız:

pd.to_datetime('2016-03-12 18:09:19 PST') 

alıyorum:

Timestamp('2016-03-13 02:09:19') 

ben bunun neden böyle emin değilim. davranışına Kontrast:

pd.to_datetime('2016-03-12 18:09:19') 

döndürür Hangi: Zaman Timestamp('2016-03-13 02:09:19') aslında değil ABD/Pasifik saati var

Timestamp('2016-03-12 18:09:19') 

Not söyledi. pd.to_datetime('2016-03-12 18:09:19 PST').tz_localize('US/Pacific')'u yapmaya çalışırsanız, bir NonExistentTimeError alırsınız.

Dizenin sonunda "PST" nin tanıtımı 16 saatlik çıkarma işlemini neden başlatıyor? to_datetime'un imkansız tarihler nasıl olabilir?

+0

Bu 16 saatlik çıkarma değil, 8 eklenmesi (tarih değişikliği not alın). Bu UTC zaman yapar. – Alexander

cevap

0

Pandalar dizenizi UTC zamanına dönüştürüyor. Pandalar, varsayılan olarak, sağladığınız zaman damgasının zaten UTC'de olduğunu varsaydığı için "PST" ihmal edildiğinde sorun mevcut değildir, bu yüzden dönüşüm yapmıyordur.

utc=False anahtar sözcüğü argümanını kullanarak dönüştürmeyi UTC'ye durdurabilirsiniz.

pd.to_datetime('2016-03-12 18:09:19 PST', utc=False) 
+0

Bunu denedim pd.to_datetime ('2016-03-12 18:09:19 PST', utc = False) 'döner' Zaman damgası ('2016-03-13 02:09:19') ' – Logister

+0

Hangi sürüme pandalar kullanıyor musunuz? Pandalar 0.17.0 için benim için 'Timestamp (' 2016-03-12 18:09:19 ') 'döndürür. – root

+0

'pd .__ version__' 0.17.1 değerini döndürür, bu yüzden bir sürüm sorunu olabileceğini varsayalım. Güncellenip gidip gitmeyeceğine bakacağım. – Logister