2016-04-08 12 views
5

bir SAS datetime dönüştürmek olarak Pandalar görünen SAS veri kümesindeki bir datetime değişken vardır read_saskullanıyorum bir <strong>Sas</strong> veri kümesi okumak için <strong>pandalar</strong> kullanıyorum Pandalar

:

1.775376e+09

Ben str dönüştürmek kez

tarihtir:

1775376002.0

(benim Pandalar veri kümesindeki) SAS karşılık gelen tarih basari

TypeError: 'float' object is unsliceable 
ile

pd.to_datetime(df.mysasdate,format='%d%m%Y%H%M%S') kullanarak dönüştürmek çalışan bir DATETIME21.2

04APR2016:08:00:02.00

olarak görünmektedir

Herhangi bir fikrin var mı? Teşekkürler!

+1

kontrol dışarı ekleyebilir. Modül datetime ihtiyacınız olan dönüştürücü var, bence: http://stackoverflow.com/a/26923644/4633893 –

cevap

9

SAS date value

is a value that represents the number of days between January 1, 1960, and a specified date. link

Yani sayı to_timedelta dönüştürmek ve bu soruyu date1960-01-01 00:00:00

df = pd.DataFrame({'mysasdate':[1775376002.0, 1775377002.0]}) 
print (df) 
     mysasdate 
0 1.775376e+09 
1 1.775377e+09 

print (pd.to_timedelta(df['mysasdate'], unit='s') + pd.datetime(1960, 1, 1)) 
0 2016-04-04 08:00:02 
1 2016-04-04 08:16:42 
Name: mysasdate, dtype: datetime64[ns] 
+0

mükemmel! Bu çalışacaktır. Teşekkürler jezrael –

+0

aslında 'ValueError: zaman verisi' 1775376002.0 'biçimiyle eşleşmiyor'% d% b% Y:% H:% M:% S.% f '(eşleşme) ' –

+0

SAS'da tarihin nasıl göründüğü –