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?
davy.ai
La razón por la cual el tipo de datos de la columna permanece como
object
después de formatear los datos usandostrftime()
es porquestrftime()
devuelve una representación de cadena del objeto datetime. Para convertirlo a un tipo de datosdatetime64[ns]
, se requiere otra conversión usandopd.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ónstrftime()
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 adatetime64[ns]
es necesaria.