2016-04-08 9 views
5

におけるSASの日時を変換:私がよう<code>read_sas</code></p> <p>パンダに表示されてSASデータセット、の日時変数がありますを使用して<strong>サス</strong>データセットを読み取ること<strong>パンダ</strong>を使用していますパンダ

1.775376e+09

私は strに変換したら

日は次のとおりです。

1775376002.0

SAS内(ない私のパンダのデータセットで)対応する日付は、私がいない成功

TypeError: 'float' object is unsliceable 

pd.to_datetime(df.mysasdate,format='%d%m%Y%H%M%S')を使用して、それを変換しようとしたDATETIME21.2

04APR2016:08:00:02.00

ように見えます

アイデア? ありがとう!

+1

を追加することができ、この質問をチェックしてください。モジュールのdatetimeはあなたが必要とするコンバータを持っています、私は思う:http://stackoverflow.com/a/26923644/4633893 –

答えて

9

SAS date value

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

だから、数to_timedeltaを変換し、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

優秀!それはうまくいくでしょう。ありがとうございました –

+0

実際に私は 'ValueError:時刻データ '1775376002.0'はフォーマット '%d%b%Y:%H:%M:%S.%f'(一致)' –

+0

と一致しません。日付はSASのように見えます –

関連する問題

 関連する問題