Pandas: converta o Timestamp para datetime.data
eu tenho uma coluna de pandas de dados de datas
In [27]: train["Original_Quote_Date"][6]
Out[27]: Timestamp('2013-12-25 00:00:00')
Como verificar a equivalência destes objectos a datetime.date
objectos do tipo
datetime.date(2013, 12, 25)
23
Author: kilojoules, 2015-12-21
3 answers
Utilizar o método .date
:
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
Para comparar com um DatetimeIndex( isto é, um conjunto de datas), você vai querer fazer isso ao contrário:
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)
27
Author: Andy Hayden, 2015-12-20 23:08:40
A partir de pandas 0, 20.3, utilizar .to_pydatetime()
para converter todas as instâncias pandas.DateTimeIndex
para Python datetime.datetime
.
6
Author: Xavier Ho, 2017-07-19 13:36:45
Podes converter um datetime.objecto de data num tampo de tempo dos pandas como este:
#!/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)
4
Author: albert, 2015-12-20 23:05:50