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.

to_datetime formatea los datos, pero no convierte el tipo de datos de la columna.

test = pd.DataFrame(
    {
            'localtime': ['25/11/2020 12:26:00', '25/11/2020 18:31:00', '6/12/2020 16:15'],
    }
    )

He convertido una columna en un dataframe utilizando
test['localtime'] = pd.to_datetime(test['localtime'], errors='coerce', dayfirst=True).dt.strftime("%d/%m/%Y %H:%M")
  

Esto formatea los datos según lo especificado pero no convierte el tipo de datos de la columna, sigue siendo object. Por lo tanto, para lograr el tipo de columna como datetime64[ns], tengo que agregar otra línea.

test['localtime'] = pd.to_datetime(test['localtime'])   

¿Puedo saber por qué ocurre esto? ¿Hay alguna forma de lograr el tipo de datos de la columna como datetime64[ns], sin agregar la segunda línea? 

enter image description here
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    La razón por la cual el tipo de datos de la columna permanece como object después de formatear los datos usando strftime() es porque strftime() devuelve una representación de cadena del objeto datetime. Para convertirlo a un tipo de datos datetime64[ns], se requiere otra conversión usando pd.to_datetime().

    En cuanto a lograr el tipo de datos de la columna como datetime64[ns] sin agregar la segunda línea, no es posible ya que la función strftime() solo devuelve una representación de cadena del objeto datetime y no afecta el tipo de datos de la columna. Por lo tanto, la segunda línea de conversión de la columna a datetime64[ns] es necesaria.

Comments are closed.