Чтение сложной таблицы с помощью pandas («диспетчер очереди задач») ⇐ Python
-
Гость
Чтение сложной таблицы с помощью pandas («диспетчер очереди задач»)
У меня есть следующая таблица, которая представляет собой выходные данные диспетчера очереди задач.
Людям его легко разобрать, но у меня возникли проблемы с чтением его в pandas DF.
Есть идеи?
Идентификатор состояния Выходной уровень E-Level Times (r/u/s) Команда [run=1/2] 6 запуск /tmp/ts-out.FzVneG [l1]python infloop.py 0 завершено /tmp/ts-out.ixWHm2 0 0.00/0.00/0.00 bash -c echo 1 1 завершено /tmp/ts-out.ZzwS11 0 0.00/0.00/0.00 bash -c echo 1 2 закончено /tmp/ts-out.GJlyge 2 0.00/0.00/0.00 bash -c 4 завершено /tmp/ts-out.lIVMYH 2 0.00/0.00/0.00 bash -c -h 5 закончено /tmp/ts-out.8EKHy1 -1 141.23/0.00/0.00 python infloop.py 3 закончено /tmp/ts-out.lBr4Wy -1 2545.36/0.00/0.02 bash -c python infloop.py 7 закончено /tmp/ts-out.kxCczi 2 0.01/0.00/0.00 bash -c 8 завершено /tmp/ts-out.3VkfNh 0 0,00/0,00/0,00 эхо 9 закончено /tmp/ts-out.8ewxzl 0 0.01/0.00/0.00 эхо 10 завершено /tmp/ts-out.ahSLaY 0 0.00/0.00/0.00 bash -c echo $GPUID 11 завершено /a/home/cc/cs/yuvval/tmp/ts-out.3dpaBO 0 0.00/0.00/0.00 bash -c ls 12 завершено /tmp/ts-out.ADWkve 0 0.00/0.00/0.00 bash -c ls 13 завершено /a/home/cc/cs/yuvval/tmp/ts-out.xm0jtn -1 130.67/0.00/0.02 bash -c python infloop.py 14 завершено /tmp/ts-out.HxBqkm 0 0.00/0.00/0.00 bash -c echo 11 15 завершено /tmp/ts-out.ERNuaE 0 0.00/0.00/0.00 bash -c echo 16 завершено /tmp/ts-out.9j6hkS 0 0.00/0.00/0.00 bash -c echo $GPUID 17 завершено /tmp/ts-out.Y5QDNa 0 0.00/0.00/0.00 bash -c echo $GPUID 18 завершено /tmp/ts-out.EIHhoX -1 0,00/0,00/0,00 %s 19 завершено /tmp/ts-out.LLw2Wl -1 0,00/0,00/0,00 20 завершено /tmp/ts-out.deWAJR -1 0,01/0,00/0,00 echo $GPUID 21 завершено /tmp/ts-out.AdZFIf -1 0,00/0,00/0,00 echo 12 22 завершено /tmp/ts-out.NBOCVv 0 0,00/0,00/0,00 эхо 12 23 завершено /tmp/ts-out.5WpfPu 0 0,00/0,00/0,00 эхо 24 завершено /tmp/ts-out.1lw4bS -1 0,00/0,00/0,00 эхо 25 завершено /tmp/ts-out.7MNGLQ 0 0.00/0.00/0.00 bash -c echo $GPUID 26 завершено /tmp/ts-out.8FZ3on 0 0.00/0.00/0.00 bash -c echo $GPUID Моя лучшая попытка была:
из StringIO импортируйте StringIO как sIO std = ... # текст таблицы pd.read_table(sIO(std), sep='\s+', engine='python') Ошибка:
ValueError: Ожидалось 7 полей в строке 2, было 9
Исходный код, создающий таблицу, доступен. Вот команды для генерации каждой строки. Может ли это помочь в чтении таблицы в фрейм данных?
if (p->label) snprintf(line, maxlen, "%-4i %-10s %-20s %-8i %0.2f/%0.2f/%0.2f %s[%s]" "%s\n", р-> Джобид, состояние работы, имя выходного файла, p->result.errorlevel, р->result.real_ms, p->result.user_ms, p->result.system_ms, зависит, р-> метка, р->команда); еще snprintf(line, maxlen, "%-4i %-10s %-20s %-8i %0.2f/%0.2f/%0.2f %s%s\n", р-> Джобид, состояние работы, имя выходного файла, p->result.errorlevel, р->result.real_ms, p->result.user_ms, p->result.system_ms, зависит, р->команда);
У меня есть следующая таблица, которая представляет собой выходные данные диспетчера очереди задач.
Людям его легко разобрать, но у меня возникли проблемы с чтением его в pandas DF.
Есть идеи?
Идентификатор состояния Выходной уровень E-Level Times (r/u/s) Команда [run=1/2] 6 запуск /tmp/ts-out.FzVneG [l1]python infloop.py 0 завершено /tmp/ts-out.ixWHm2 0 0.00/0.00/0.00 bash -c echo 1 1 завершено /tmp/ts-out.ZzwS11 0 0.00/0.00/0.00 bash -c echo 1 2 закончено /tmp/ts-out.GJlyge 2 0.00/0.00/0.00 bash -c 4 завершено /tmp/ts-out.lIVMYH 2 0.00/0.00/0.00 bash -c -h 5 закончено /tmp/ts-out.8EKHy1 -1 141.23/0.00/0.00 python infloop.py 3 закончено /tmp/ts-out.lBr4Wy -1 2545.36/0.00/0.02 bash -c python infloop.py 7 закончено /tmp/ts-out.kxCczi 2 0.01/0.00/0.00 bash -c 8 завершено /tmp/ts-out.3VkfNh 0 0,00/0,00/0,00 эхо 9 закончено /tmp/ts-out.8ewxzl 0 0.01/0.00/0.00 эхо 10 завершено /tmp/ts-out.ahSLaY 0 0.00/0.00/0.00 bash -c echo $GPUID 11 завершено /a/home/cc/cs/yuvval/tmp/ts-out.3dpaBO 0 0.00/0.00/0.00 bash -c ls 12 завершено /tmp/ts-out.ADWkve 0 0.00/0.00/0.00 bash -c ls 13 завершено /a/home/cc/cs/yuvval/tmp/ts-out.xm0jtn -1 130.67/0.00/0.02 bash -c python infloop.py 14 завершено /tmp/ts-out.HxBqkm 0 0.00/0.00/0.00 bash -c echo 11 15 завершено /tmp/ts-out.ERNuaE 0 0.00/0.00/0.00 bash -c echo 16 завершено /tmp/ts-out.9j6hkS 0 0.00/0.00/0.00 bash -c echo $GPUID 17 завершено /tmp/ts-out.Y5QDNa 0 0.00/0.00/0.00 bash -c echo $GPUID 18 завершено /tmp/ts-out.EIHhoX -1 0,00/0,00/0,00 %s 19 завершено /tmp/ts-out.LLw2Wl -1 0,00/0,00/0,00 20 завершено /tmp/ts-out.deWAJR -1 0,01/0,00/0,00 echo $GPUID 21 завершено /tmp/ts-out.AdZFIf -1 0,00/0,00/0,00 echo 12 22 завершено /tmp/ts-out.NBOCVv 0 0,00/0,00/0,00 эхо 12 23 завершено /tmp/ts-out.5WpfPu 0 0,00/0,00/0,00 эхо 24 завершено /tmp/ts-out.1lw4bS -1 0,00/0,00/0,00 эхо 25 завершено /tmp/ts-out.7MNGLQ 0 0.00/0.00/0.00 bash -c echo $GPUID 26 завершено /tmp/ts-out.8FZ3on 0 0.00/0.00/0.00 bash -c echo $GPUID Моя лучшая попытка была:
из StringIO импортируйте StringIO как sIO std = ... # текст таблицы pd.read_table(sIO(std), sep='\s+', engine='python') Ошибка:
ValueError: Ожидалось 7 полей в строке 2, было 9
Исходный код, создающий таблицу, доступен. Вот команды для генерации каждой строки. Может ли это помочь в чтении таблицы в фрейм данных?
if (p->label) snprintf(line, maxlen, "%-4i %-10s %-20s %-8i %0.2f/%0.2f/%0.2f %s[%s]" "%s\n", р-> Джобид, состояние работы, имя выходного файла, p->result.errorlevel, р->result.real_ms, p->result.user_ms, p->result.system_ms, зависит, р-> метка, р->команда); еще snprintf(line, maxlen, "%-4i %-10s %-20s %-8i %0.2f/%0.2f/%0.2f %s%s\n", р-> Джобид, состояние работы, имя выходного файла, p->result.errorlevel, р->result.real_ms, p->result.user_ms, p->result.system_ms, зависит, р->команда);