gpt4 book ai didi

python - 为什么 pandas 在调用 pd.to_datetime() 时返回时间戳而不是 datetime 对象?

转载 作者:太空狗 更新时间:2023-10-30 00:55:52 24 4
gpt4 key购买 nike

根据manual , pd.to_datetime() 应该创建一个 datetime 对象。

相反,当我调用 pd.to_datetime("2012-05-14") 时,我得到了一个时间戳对象!对该对象调用 to_datetime() 最终得到一个日期时间对象。

In [1]: pd.to_datetime("2012-05-14")
Out[1]: Timestamp('2012-05-14 00:00:00', tz=None)

In [2]: t = pd.to_datetime("2012-05-14")
In [3]: t.to_datime()
Out[2]: datetime.datetime(2012, 5, 14, 0, 0)

对于这种意外行为有解释吗?

最佳答案

Timestamp 对象是 pandas 处理日期时间的方式,因此它 pandas 中的日期时间对象。但是您需要一个 datetime.datetime 对象。
通常你不应该关心这个(这只是一个不同的 repr 的问题)。只要您使用的是 Pandas ,时间戳就可以。即使你真的想要一个 datetime.datetime,大多数事情都会起作用(例如所有方法),否则你可以使用 to_pydatetime 来检索 datetime.datetime 对象。

长话短说:

  • pandas 将日期时间存储为索引/列中类型为 datetime64 的数据(这不是 datetime.datetime 对象)。这是日期时间的标准 numpy 类型,比使用 datetime.datetime 对象更高效:

     In [15]: df = pd.DataFrame({'A':[dt.datetime(2012,1,1), dt.datetime(2012,1,2)]})

    In [16]: df.dtypes
    Out[16]:
    A datetime64[ns]
    dtype: object

    In [17]: df.loc[0,'A']
    Out[17]: Timestamp('2012-01-01 00:00:00', tz=None)
  • 在检索此类日期时间列/索引的一个值时,您将看到一个Timestamp 对象。这是一个使用日期时间更方便的对象(比 datetime64 更多的方法、更好的表示等),这是 datetime.datetime 的子类,它的所有方法也是如此。

关于python - 为什么 pandas 在调用 pd.to_datetime() 时返回时间戳而不是 datetime 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23755146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com