¿Cómo cambiar el formato de fecha y hora en el dataframe con el uso de pandas?

Soy un aprendiz de pandas.

Tengo un dataframe con la columna ‘FECHA’, el formato de fecha y hora de la columna es como ’11 / 1/2017 1:00 ‘. Quiero cambiar el formato de fecha y hora de ’11 / 1/2017 1:00 ‘a’ 1-Dec-17 1:00 ‘, probé el siguiente código:

dir_path = os.path.dirname(os.path.realpath("__file__")) print(dir_path) def parse_dates(x): return datetime.strptime(x, "%d-%b-%y %H:%M") df = pd.read_csv(dir_path+"/TEST.csv", parse_dates=['DATE'],date_parser=parse_dates) 

Pero muestra error:

ValueError: los datos de tiempo ’11 / 1/2017 1:00 ‘no coinciden con el formato’% d-% b-% y% H:% M ‘

También intenté convertir el dataframe, pero fallé:

 df=pd.read_csv(dir_path+"/TEST.csv") df['DATE'] = pd.to_datetime(df['DATE'],format='%d-%b-%y %H:%M') 

De nuevo, muestra error:

ValueError: los datos de tiempo ’11 / 1/2017 1:00 ‘no coinciden con el formato’% d-% b-% y% H:% M ‘(coincidencia)

¿Como resolver el problema? ¡Gracias por tu tiempo!

 df=pd.DataFrame({'Time':[ '11/1/2017 1:00', '11/1/2017 1:00', '11/1/2017 1:00', '11/1/2017 1:00']}) df.Time=pd.to_datetime(df.Time).dt.strftime('%d-%b-%y %H:%M') df Out[870]: Time 0 01-Nov-17 01:00 1 01-Nov-17 01:00 2 01-Nov-17 01:00 3 01-Nov-17 01:00 

La respuesta simple es que su argumento de format a la función strptime es incorrecto. Desea datetime.strptime(x, "%m-%d-%Y %H:%M") .

Además, asegúrese de que todos sus números estén rellenados (es decir, para el mes, asegúrese de que sea 01 para enero en lugar de 1. La misma idea para minutos y días), de lo contrario esto puede fallar.

Le recomendaría que eche un vistazo a la página de python para ver el formato de strptime y aprender más sobre cómo formatear fechas.