Cómo cambiar el formato de fecha y hora en pandas

El valor de muestra de la columna DOB está en el formato 1/1/2016 que, de forma predeterminada, se convierte en objeto como se muestra a continuación

 DOB object 

Convertir a formato de fecha

 df['DOB'] = pd.to_datetime(df['DOB']) 

La fecha se convierte a

 2016-01-26 

dtype es

 DOB datetime64[ns] 

Ahora quiero convertir este formato de fecha al 01/26/2016 o en cualquier otro formato de fecha general. ¿Cómo lo hago?

Cualquiera que sea el método que pruebe, siempre muestra la fecha en el formato 2016-01-26 .

Puede usar dt.strftime si necesita convertir datetime a otros formatos (pero tenga en cuenta que el dtype de columna será object ( string )):

 import pandas as pd df = pd.DataFrame({'DOB': {0: '26/1/2016', 1: '26/1/2016'}}) print (df) DOB 0 26/1/2016 1 26/1/2016 df['DOB'] = pd.to_datetime(df.DOB) print (df) DOB 0 2016-01-26 1 2016-01-26 df['DOB1'] = df['DOB'].dt.strftime('%m/%d/%Y') print (df) DOB DOB1 0 2016-01-26 01/26/2016 1 2016-01-26 01/26/2016 

Comparado con la primera respuesta, recomendaré usar dt.strftime () primero, luego pd.to_datetime (). De esta manera, aún resultará en el tipo de datos de fecha y hora.

Por ejemplo,

 import pandas as pd df = pd.DataFrame({'DOB': {0: '26/1/2016 ', 1: '26/1/2016 '}) print(df.dtypes) df['DOB1'] = df['DOB'].dt.strftime('%m/%d/%Y') print(df.dtypes) df['DOB1'] = pd.to_datetime(df['DOB1']) print(df.dtypes) 

Cambiando el formato pero no cambiando el tipo:

 df['date'] = pd.to_datetime(df["date"].dt.strftime('%Y-%m'))