在datetime和Pandas Timestamp对象之间转换

Ame*_*ina 50 python datetime pandas

我有以下内容:

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

> date2
datetime.date(2014, 3, 26)
Run Code Online (Sandbox Code Playgroud)

我读了这个答案我可以pandas.to_datetime()用来转换Timestampsdatetime对象,但它似乎不起作用:

> pd.to_datetime(date1)   
Timestamp('2014-01-23 00:00:00', tz=None)
Run Code Online (Sandbox Code Playgroud)

为什么?如何在这两种格式之间进行转换?

And*_*den 70

您可以使用to_pydatetime方法更明确:

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)
Run Code Online (Sandbox Code Playgroud)

它也可以在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)
Run Code Online (Sandbox Code Playgroud)

  • 这个答案似乎不再有效。 (3认同)
  • 谢谢。您是否知道“to_datetime()”和“to_pydatetime()”之间的区别以及为什么将“Timestamp”对象传递给类方法“pd.to_datetime”不起作用? (2认同)

小智 17

熊猫时间戳到 datetime.datetime:

pd.Timestamp('2014-01-23 00:00:00', tz=None).to_pydatetime()
Run Code Online (Sandbox Code Playgroud)

datetime.datetime 到时间戳

pd.Timestamp(datetime(2014, 1, 23))
Run Code Online (Sandbox Code Playgroud)


beh*_*uri 6

>>> 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')
Run Code Online (Sandbox Code Playgroud)

  • @ user815423426似乎与其名称相反``pd.to_datetime`总是返回`Timestamp` (7认同)
  • 在熊猫0.24上不起作用。说“时间戳记”对象没有属性“ to_datetime” (3认同)
  • @Phoenix,您正在寻找的方法是“to_pydatetime()”。 (3认同)