es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Convertir los datos en estilo de Excel en un marco de datos de pandas.

Tengo un dataframe que contiene valores de fecha a estilo de Excel como:

launched_at
1375134026
1377313137

No puedo convertirlos usando las respuestas de SO https://stackoverflow.com/questions/38454403/convert-excel-style-date-with-pandas

Me encuentro con errores como:

OutOfBoundsDatetime Traceback (most recent call last)
in ()
1 import datetime as dt
2
—> 3 cf_success[‘launch date’] = pd.to_datetime(cf_success[‘launched_at’], unit=’d’, origin=’1899-12-30′)

1 frames
/usr/local/lib/python3.7/dist-packages/pandas/core/tools/datetimes.py in _convert_listlike_datetimes(arg, format, name, tz, unit, errors, infer_datetime_format, dayfirst, yearfirst, exact)
338
339 result, tz_parsed = tslib.array_with_unit_to_datetime(
—> 340 arg, unit, errors=errors
341 )
342

pandas/_libs/tslib.pyx in pandas._libs.tslib.array_with_unit_to_datetime()

OutOfBoundsDatetime: cannot convert input with unit ‘d’

Mi resultado deseado es

2015-08-11 12:12:28

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás encontrando un error al intentar convertir los valores de fecha de estilo Excel a un formato datetime. Según la documentación, el parámetro unit debería estar establecido en s para segundos, no en d para días. También puedes establecer el parámetro origin en 'unix' para usar el tiempo de época de Unix.

    Intenta con el siguiente código:

    import pandas as pd
    
    df['fecha de lanzamiento'] = pd.to_datetime(df['launched_at'], unit='s', origin='unix')
    

    Esto debería darte la salida deseada:

    2015-08-11 12:12:28 
    2013-08-29 13:55:37
    

Comments are closed.