¿Cómo definir el formato cuando se usa pandas to_datetime?

Quiero trazar el RESULTADO frente al TIEMPO en función de un archivo testresult.csv que tiene el siguiente formato, y tengo problemas para definir correctamente el tipo de datos de la columna HORA.

 TIME,RESULT 03/24/2016 12:27:11 AM,2 03/24/2016 12:28:41 AM,76 03/24/2016 12:37:23 AM,19 03/24/2016 12:38:44 AM,68 03/24/2016 12:42:02 AM,44 ... 

Para leer el archivo csv, este es el código que escribí: raw_df = pd.read_csv('testresult.csv', index_col=None, parse_dates=['TIME'], infer_datetime_format=True)
Este código funciona, pero es extremadamente lento, y asumo que infer_datetime_format toma tiempo. Así que primero intenté leer en el csv por defecto, y luego convertí el tipo de dato ‘TIEMPO’ al tipo de hora usando to_datetime (), y espero que al definir el formato, pueda acelerar la velocidad. raw_df = pd.read_csv('testresult.csv') raw_df.loc['NEWTIME'] = pd.to_datetiem(raw_df['TIME'], format='%m/%d%Y %-I%M%S %p') Este código se quejó de error “ValueError:’ – ‘es una directiva errónea en el formato’% m /% d% Y% -I% M% S% p ‘”

Por favor, cualquier sugerencia o sugerencia será útil.

Gracias

El formato que está pasando no es válido. El guión entre el % y el I no debe estar allí.

 df['TIME'] = pd.to_datetime(df['TIME'], format="%m/%d/%Y %I:%M:%S %p") 

Esto convertirá su columna de TIME a un dato.


Alternativamente, puede ajustar su llamada a read_csv para hacer esto:

 pd.read_csv('testresult.csv', parse_dates=['TIME'], date_parser=lambda x: pd.to_datetime(x, format='%m/%d/%Y %I:%M:%S %p')) 

Nuevamente, esto usa el formato apropiado sin el extra - , pero también pasa el formato al parámetro date_parser lugar de que los pandas intenten adivinarlo con el parámetro infer_datetime_format .

puedes probar esto

 In [69]: df = pd.read_csv(fn, parse_dates=[0], date_parser=lambda x: pd.to_datetime(x, format='%m/%d/%Y %I:%M:%S %p')) In [70]: df Out[70]: TIME RESULT 0 2016-03-24 00:27:11 2 1 2016-03-24 00:28:41 76 2 2016-03-24 00:37:23 19 3 2016-03-24 00:38:44 68 4 2016-03-24 00:42:02 44