2015-08-20 3 views
4

Я пытаюсь преобразовать объект pandas.tslib.Timestamp в datetime. df['orig_iss_dt'] - объект pandas.tslib.Timestamp. Я использовал ответ here, чтобы попытаться сделать это, но обнаружил, что print(type(origination)) все еще возвращает тот же тип.Преобразование объекта `pandas.tslib.Timestamp` в` datetime`

df['orig_iss_dt'] = df['orig_iss_dt'].apply(lambda x: datetime.date(x.year,x.month,x.day)) 

for (i, row) in df: 
    origination = row.orig_iss_dt 
    print(type(origination)) 
+0

Какую версию панд вы используете? – joris

ответ

12

Самый простой способ преобразовать панд Timestamp в datetime.datetime является использование метода to_pydatetime. Это можно назвать по Timestamp непосредственно или на серии:

In [15]: s = pd.Series(pd.date_range('2012-01-01', periods=3)) 

In [16]: s 
Out[16]: 
0 2012-01-01 
1 2012-01-02 
2 2012-01-03 
dtype: datetime64[ns] 

In [17]: s[0] 
Out[17]: Timestamp('2012-01-01 00:00:00') 

In [18]: s.dt.to_pydatetime() 
Out[18]: 
array([datetime.datetime(2012, 1, 1, 0, 0), 
     datetime.datetime(2012, 1, 2, 0, 0), 
     datetime.datetime(2012, 1, 3, 0, 0)], dtype=object) 

Но обратите внимание, что это зачастую не требуется, так как Timestamp подкласс datetime.datetime.