NumPy Convertir Datetime64 a Datetime.Datetime o Timestamp
- el problema
-
Convierta
datetime.datetimeennp.datetime64ypd.Timestamp -
Convierta
np.datetime64adatetime.datetimeypd.Timestamp -
Convierta
Timestampadatetimeydatetime64
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.
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