Tengo 2 columnas de fecha (comienzo y fin) en un marco de datos donde las fechas están en el siguiente formato de cadena '% Y-% m-% d% H:% M:% S.% f'. ¿Cómo puedo cambiarlos a formato de fecha en Python? También quiero crear una nueva columna que muestre la diferencia en días entre el final y las fechas de inicio.
¡Gracias de antemano!
2 respuestas
Si está utilizando una versión reciente de pandas, puede pasar un argumento de formato a to_datetime
:
In [11]: dates = ["2014-08-27 19:53:06.000", "2014-08-27 19:53:15.002"]
In [12]: pd.to_datetime(dates, format='%Y-%m-%d %H:%M:%S.%f')
Out[12]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2014-08-27 19:53:06, 2014-08-27 19:53:15.002000]
Length: 2, Freq: None, Timezone: None
Nota: en este caso no es necesario pasar el formato, pero puede ser más rápido / más estricto:
In [13]: pd.to_datetime(dates,)
Out[13]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2014-08-27 19:53:06, 2014-08-27 19:53:15.002000]
Length: 2, Freq: None, Timezone: None
El módulo datetime
tiene todo lo que necesitas para jugar con las fechas. Tenga en cuenta que en el formato que describe %Y-%m-%d %H:%M:%S.%f
el %f
no aparece en directivas conocidas y no está incluido en mi respuesta
from datetime import datetime
dates = ["2014-08-27 19:53:06", "2014-08-27 19:53:15"]
# That's where the conversion happens from string to datetime objects
datetimes = [datetime.strptime(date, "%Y-%m-%d %H:%M:%S") for date in dates]
print datetimes
>> [datetime.datetime(2014, 8, 27, 19, 53, 6), datetime.datetime(2014, 8, 27, 19, 53, 15)
# Here a simple subtraction will give you the result you are looking for return a timedelta object
delta = datetimes[1] - datetimes[0]
print type(delta), delta
>> <type 'datetime.timedelta'>, 0:00:09
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.