NumPy Convertir Datetime64 a Datetime.Datetime o Timestamp

Salman Mehmood 20 junio 2023
  1. el problema
  2. Convierta datetime.datetime en np.datetime64 y pd.Timestamp
  3. Convierta np.datetime64 a datetime.datetime y pd.Timestamp
  4. Convierta Timestamp a datetime y datetime64
NumPy Convertir Datetime64 a Datetime.Datetime o Timestamp

Este artículo tiene como objetivo demostrar cómo convertir datos entre numPy.datetim64, datetime.datetime y Timestamp.

el problema

Cuando se trata de datos, ya sean ordenados o desordenados, encontrar la fecha y la hora es algo bastante común. Dependiendo de la situación, la hora y la fecha deben tratarse de manera adecuada para garantizar que los datos procesados estén en un formato deseable.

Ejemplo de código:

import datetime
import numpy as np
import pandas as pd

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

En el código anterior, hemos importado tres módulos llamados datetime, numpy y pandas, cada uno de los cuales proporciona su implementación para almacenar y procesar fechas (cada uno tiene sus propios casos de uso distintos).

Usando datetime.datetime(), creamos una instancia de datetime y la almacenamos en una variable llamada dt. En cuanto a pandas, usamos el método pd.DatetimeIndex(), que crea una matriz inmutable que almacena un número n de instancias datetime64 y acceder al primer miembro de la matriz devuelve una instancia Timestamp.

Pasando al módulo pandas, usamos el método datetime64() para convertir la instancia datetime y almacenarla en una variable llamada dt64.

Es fácil convertir instancias de datetime a Timestamp y datetime64. En este artículo, ahora veremos cómo podemos convertir instancias de np.datetime64 a datetime y Timestamp.

Convierta datetime.datetime en np.datetime64 y pd.Timestamp

Ejemplo de código:

import datetime
import numpy as np
import pandas as pd

dt = datetime.datetime(
    year=2018, month=10, day=24, hour=4, minute=3, second=10, microsecond=7199
)

# convert datetime.datetime to np.datetim364
print(np.datetime64(dt))

# datetime.datetime to pd.Timestamp
print(pd.Timestamp(dt))

Producción :

2018-10-24T04:03:10.007199
2018-10-24 04:03:10.007199

Convertir fechahora. datetime a datetime64 y Timestamp pasando la instancia de datetime a los constructores de datetime64 y Timestamp, que se convertirán.

Convierta np.datetime64 a datetime.datetime y pd.Timestamp

Ejemplo de código:

import datetime
import numpy as np
import pandas as pd

# np.datetime64 to datetime.datetime
dt64 = np.datetime64("2017-10-24 05:34:20.123456")
unix_epoch = np.datetime64(0, "s")
one_second = np.timedelta64(1, "s")
seconds_since_epoch = (dt64 - unix_epoch) / one_second

print(datetime.datetime.utcfromtimestamp(seconds_since_epoch))

# np.datetime64 to Timestamp
print(pd.Timestamp(dt64))

Producción :

2017-10-24 05:34:20.123456
2017-10-24 05:34:20.123456

Para convertir de np.datetime64 a datetime.datetime, primero debemos convertir los datos de datetime64 a segundos (en formato de época). Después de la conversión, los segundos se pasan al método datetime llamado utcfromtimestamp, que lee la época y la convierte en una instancia de datetime.

En cuanto a np.datetime64 a Timestamp, es relativamente simple, simplemente pase la instancia np.datetime64 al constructor Timestamp.

Convierta Timestamp a datetime y datetime64

Ejemplo de código:

import datetime
import numpy as np
import pandas as pd

ts = pd.Timestamp("2017-10-24 04:24:33.654321")

# Timestamp to datetime.datetime
print(ts.to_pydatetime())

# Timestamp to np.datetime64
print(ts.to_datetime64())

Producción :

2017-10-24 04:24:33.654321
2017-10-24T04:24:33.654321000

Con la ayuda de estas funciones, Timestamp se puede convertir fácilmente a datetime y datetime64 con una sola llamada de método. Para convertir de Timestamp a datetime.datetime, utilice el método to_pydatetime(), convierte la instancia de Timestamp en una datetime. fechahora instancia.

En cuanto a la conversión de Timestamp a datetime, utilice el método to_datetime64(). Convierte la instancia Timestamp en una instancia np.datetime64.

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn