web-dev-qa-db-fra.com

Conversion entre datetime et Pandas Timestamp

J'ai le suivant:

> date1
Timestamp('2014-01-23 00:00:00', tz=None)

> date2
datetime.date(2014, 3, 26)

et j'ai lu cette réponse que je pourrais utiliser pandas.to_datetime() pour convertir des objets Timestamps en datetime, mais cela ne semble pas fonctionner :

> pd.to_datetime(date1)   
Timestamp('2014-01-23 00:00:00', tz=None)

Pourquoi? Comment puis-je convertir entre ces deux formats?

43

Vous pouvez utiliser la méthode to_pydatetime pour être plus explicite:

In [11]: ts = pd.Timestamp('2014-01-23 00:00:00', tz=None)

In [12]: ts.to_pydatetime()
Out[12]: datetime.datetime(2014, 1, 23, 0, 0)

Il est également disponible sur un DatetimeIndex:

In [13]: rng = pd.date_range('1/10/2011', periods=3, freq='D')

In [14]: rng.to_pydatetime()
Out[14]:
array([datetime.datetime(2011, 1, 10, 0, 0),
       datetime.datetime(2011, 1, 11, 0, 0),
       datetime.datetime(2011, 1, 12, 0, 0)], dtype=object)
59
Andy Hayden
>>> pd.Timestamp('2014-01-23 00:00:00', tz=None).to_datetime()
datetime.datetime(2014, 1, 23, 0, 0)
>>> pd.Timestamp(datetime.date(2014, 3, 26))
Timestamp('2014-03-26 00:00:00')
6
behzad.nouri