2016-04-04 14 views
2

Ich verwende Pandas 0.18 und read_sas, um eine sas7bdat Datenmenge zu laden.konvertiert numerische sas Datum zu Datetime in Pandas

Die Termine in der Pandas Datenrahmen wie folgt aussehen:

Out[56]: 
0 19411.0 
1 19325.0 
2 19325.0 
3 19443.0 
4 19778.0 
Name: sas_date, dtype: float64 

pd.to_datetime dieses Format nicht erkennen. Was soll ich tun, um das Datum richtig zu analysieren?

Danke!

+1

Bitte teilen Sie uns mit, zu welchen Daten diese Nummern entsprechen. – unutbu

Antwort

10

Nach this link,

[A] SAS Datumswert ist ein Wert, der die Anzahl der Tage zwischen 1. Januar

Wenn wir also stellt 1960 und ein angegebenes Datum konvertieren die Zahlen Pandas Timedeltas und fügen sie sie zu 1960-1-1 wir das Datum erholen können:

import numpy as np 
import pandas as pd 

ser = pd.Series([19411.0, 19325.0, 19325.0, 19443.0, 19778.0]) 
ser = pd.to_timedelta(ser, unit='D') + pd.Timestamp('1960-1-1') 

0 2013-02-22 
1 2012-11-28 
2 2012-11-28 
3 2013-03-26 
4 2014-02-24 
dtype: datetime64[ns] 
Verwandte Themen