首页 >后端开发 >Python教程 >如何在 NumPy Datetime64、Datetime 和 Timestamp 对象之间进行转换?

如何在 NumPy Datetime64、Datetime 和 Timestamp 对象之间进行转换?

Linda Hamilton
Linda Hamilton原创
2024-12-14 19:28:11464浏览

How to Convert Between NumPy Datetime64, Datetime, and Timestamp Objects?

在 Numpy Datetime64、Datetime 和 Timestamp 对象之间进行转换

在 Python 中使用时间戳和日期时,通常需要在不同数据类型之间进行转换。这包括 numpy.datetime64、datetime.datetime 和 datetime64 对象之间的转换。

从 Datetime64 转换为 Datetime 或 Timestamp

将 numpy.datetime64 对象 dt64 转换为 datetime.datetime 对象 dt ,只需使用 dt = dt64.astype(datetime.datetime)。请注意,此转换中可能不会保留时区信息。

类似地,要将 dt64 转换为 datetime.Timestamp 对象 ts,请使用 ts = pd.Timestamp(dt64)。这将确保维护时区信息。

从 Datetime 或 Timestamp 转换为 Datetime64

要将 datetime.datetime 对象 dt 转换为 numpy.datetime64 对象 dt64,请使用 dt64 = np.日期时间64(dt)。这将创建一个与 dt 具有相同时间戳的 datetime64 对象。

要将 datetime.Timestamp 对象 ts 转换为 numpy.datetime64 对象 dt64,请使用 dt64 = ts.timestamp().astype(np.datetime64) 。这将创建一个与 ts 具有相同时间戳和时区的 datetime64 对象。

示例转换

考虑以下示例:

import datetime
import numpy as np
import pandas as pd

dt = datetime.datetime(2012, 5, 1)
ts = pd.DatetimeIndex([dt])[0]
dt64 = np.datetime64(dt)

print(dt64.astype(datetime.datetime))
print(pd.Timestamp(dt64))

这将输出:

2012-05-01 00:00:00
<Timestamp: 2012-05-01 00:00:00+00:00>

请注意,从 dt64 转换为 Timestamp 时保留了时区信息,但转换为 datetime.datetime 时丢失。

以上是如何在 NumPy Datetime64、Datetime 和 Timestamp 对象之间进行转换?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn