Quiero convertir una cadena a partir de un dataframe a datetime.

dfx = df.ix[:,'a']
dfx = pd.to_datetime(dfx)

Pero da el siguiente error:

ValueError: día está fuera del intervalo para el mes

Alguien puede ayudar?

¿Cuál es el valor de dfx?
posibles duplicados de stackoverflow.com/questions/17690738/…

OriginalEl autor Niladri Gomes | 2016-05-17

1 Comentario

  1. 10

    Puede ayudar a añadir parámetro dayfirst=True a to_datetime, si el formato de datetime es 30-01-2016:

    dfx = df.ix[:,'a']
    dfx = pd.to_datetime(dfx, dayfirst=True)

    Más universal es el uso de parámetros formato con errors='coerce' para la sustitución de valores con otros format a NaN:

    dfx = '30-01-2016'
    
    dfx = pd.to_datetime(dfx, format='%d-%m-%Y', errors='coerce')
    print (dfx)
    2016-01-30 00:00:00

    Ejemplo:

    dfx = pd.Series(['30-01-2016', '15-09-2015', '40-09-2016'])
    print (dfx)
    0    30-01-2016
    1    15-09-2015
    2    40-09-2016
    dtype: object
    
    dfx = pd.to_datetime(dfx, format='%d-%m-%Y', errors='coerce')
    print (dfx)
    0   2016-01-30
    1   2015-09-15
    2          NaT
    dtype: datetime64[ns]

    Si el formato es estándar (por ejemplo, 01-30-2016 o 01-30-2016), agregar sólo errors='coerce':

    dfx = pd.Series(['01-30-2016', '09-15-2015', '09-40-2016'])
    print (dfx)
    0    01-30-2016
    1    09-15-2015
    2    09-40-2016
    dtype: object
    
    dfx = pd.to_datetime(dfx, errors='coerce')
    print (dfx)
    0   2016-01-30
    1   2015-09-15
    2          NaT
    dtype: datetime64[ns]

    OriginalEl autor jezrael

Dejar respuesta

Please enter your comment!
Please enter your name here