Análisis de las columnas DD MM YY HH MM SS de un archivo TXT utilizando los pandas de Python

Gracias a todos por su tiempo de antemano. Tengo un número de archivos de texto delimitados por espacios en el formato;

29 04 13 18 15 00 7.667 29 04 13 18 30 00 7.000 29 04 13 18 45 00 7.000 29 04 13 19 00 00 7.333 29 04 13 19 15 00 7.000 

estando en el formato DD MM YY HH MM SS y mi valor de resultado. Estoy tratando de leer el archivo txt usando los pandas de Python. He intentado hacer un poco de investigación sobre esto antes de publicar esta pregunta, así que espero que no esté cubriendo el terreno.

Basándome en el ensayo y error y la investigación que he encontrado:

  import pandas as pd from cStringIO import StringIO def parse_all_fields(day_col, month_col, year_col, hour_col, minute_col,second_col): day_col = _maybe_cast(day_col) month_col = _maybe_cast(month_col) year_col = _maybe_cast(year_col) hour_col = _maybe_cast(hour_col) minute_col = _maybe_cast(minute_col) second_col = _maybe_cast(second_col) return lib.try_parse_datetime_components(day_col, month_col, year_col, hour_col, minute_col, second_col) ##Read the .txt file data1 = pd.read_table('0132_3.TXT', sep='\s+', names=['Day','Month','Year','Hour','Min','Sec','Value']) data1[:10] Out[21]: Day,Month,Year,Hour, Min, Sec, Value 29 04 13 18 15 00 7.667 29 04 13 18 30 00 7.000 29 04 13 18 45 00 7.000 29 04 13 19 00 00 7.333 29 04 13 19 15 00 7.000 data2 = pd.read_table(StringIO(data1), parse_dates={'datetime':['Day','Month','Year','Hour''Min','Sec']}, date_parser=parse_all_fields, dayfirst=True) 

  TypeError Traceback (most recent call last)  in () ----> 1 data2 = pd.read_table(StringIO(data1), parse_dates={'datetime': ['Day','Month','Year','Hour''Min','Sec']}, date_parser=parse_all_fields, dayfirst=True) TypeError: expected read buffer, DataFrame found 

En este punto estoy atascado. En primer lugar, el error de lectura del buffer esperado me confunde. ¿Debo hacer más procesamiento previo del archivo .txt para obtener las fechas en un formato legible? Nota: el parse_function de read_table no funciona solo en este formato de fecha.

Soy un principiante – tratando de aprender. Lo siento si el código es incorrecto / básico / confuso. Estaría muy agradecido si alguien pudiera ayudar. Muchas gracias de antemano.

Creo que será más fácil simplemente analizar las fechas en que se lee el csv:

 In [1]: df = pd.read_csv('0132_3.TXT', header=None, sep='\s+\s', parse_dates=[[0]]) In [2]: df Out[2]: 0 1 0 2013-04-29 00:00:00 7.667 1 2013-04-29 00:00:00 7.000 2 2013-04-29 00:00:00 7.000 3 2013-04-29 00:00:00 7.333 4 2013-04-29 00:00:00 7.000 

Dado que está utilizando un formato de fecha inusual, también debe especificar un analizador de fecha:

 In [11]: def date_parser(ss): day, month, year, hour, min, sec = ss.split() return pd.Timestamp('20%s-%s-%s %s:%s:%s' % (year, month, day, hour, min, sec)) In [12]: df = pd.read_csv('0132_3.TXT', header=None, sep='\s+\s', parse_dates=[[0]], date_parser=date_parser) In [13]: df Out[13]: 0 1 0 2013-04-29 18:15:00 7.667 1 2013-04-29 18:30:00 7.000 2 2013-04-29 18:45:00 7.000 3 2013-04-29 19:00:00 7.333 4 2013-04-29 19:15:00 7.000