2015-12-20 23 views
16

Ho una colonna di panda di dati timestampPandas: Convertire timestamp per datetime.date

In [27]: train["Original_Quote_Date"][6] 
Out[27]: Timestamp('2013-12-25 00:00:00') 

Come si può verificare l'equivalenza di questi oggetti per datetime.date oggetti del tipo

datetime.date(2013, 12, 25) 
+0

Vedere anche la domanda correlata per * datetime *: http://stackoverflow.com/questions/13703720/converting-between-datetime-timestamp-and-datetime64 –

risposta

19

Utilizzare il 012.324.697.410.Metodo:

In [11]: t = pd.Timestamp('2013-12-25 00:00:00') 

In [12]: t.date() 
Out[12]: datetime.date(2013, 12, 25) 

In [13]: t.date() == datetime.date(2013, 12, 25) 
Out[13]: True 

da confrontare con un DatetimeIndex (cioè una serie di timestamp), ti consigliamo di farlo il contrario:

In [21]: pd.Timestamp(datetime.date(2013, 12, 25)) 
Out[21]: Timestamp('2013-12-25 00:00:00') 

In [22]: ts = pd.DatetimeIndex([t]) 

In [23]: ts == pd.Timestamp(datetime.date(2013, 12, 25)) 
Out[23]: array([ True], dtype=bool) 
2

È possibile convertire un oggetto datetime.date in un timestamp panda come questo:

#!/usr/bin/env python3 
# coding: utf-8 

import pandas as pd 
import datetime 

# create a datetime data object 
d_time = datetime.date(2010, 11, 12) 

# create a pandas Timestamp object 
t_stamp = pd.to_datetime('2010/11/12') 

# cast `datetime_timestamp` as Timestamp object and compare 
d_time2t_stamp = pd.to_datetime(d_time) 

# print to double check 
print(d_time) 
print(t_stamp) 
print(d_time2t_stamp) 

# since the conversion succeds this prints `True` 
print(d_time2t_stamp == t_stamp) 
5

Come di panda 0.20.3, utilizzare .to_pydatetime() per convertire qualsiasi pandas.DateTimeIndex casi a Python datetime.datetime.