NumPy Convertir Datetime64 a Datetime.Datetime o Timestamp
- el problema
-
Convierta
datetime.datetime
ennp.datetime64
ypd.Timestamp
-
Convierta
np.datetime64
adatetime.datetime
ypd.Timestamp
-
Convierta
Timestamp
adatetime
ydatetime64
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