У меня есть .txt, содержащий набор данных временных рядов, отформатированный следующим образом, в виде строк, разделенных \ n:
N>New Section
A>1, 2, 3
L>Label_1
G>1, 2, 3
A>3, 2, 1
G>3, 1, 1
A>2, 2, 1
... множеством строк пар G> и A>,с переменным номером, затем новый раздел L> Label ...
L>Label_1
G>1, 2, 3
A>3, 2, 1
G>3, 1, 1
A>2, 2, 1
... и иногда новый N> Новый раздел ...
N>New Section
A>1, 2, 3
L>Label_2
G>1, 2, 3
A>3, 2, 1
G>3, 1, 1
A>2, 2, 1
... повторяется многораз.
Каждая пара строк G> и A> представляет собой набор измерений x, y, z на временной метке в серии временных рядов, состоящей из сотен измерений, связанных с меткой L>, которая предшествовала им.Есть 6 возможных меток.
Требуемый выходной формат - это кадр данных pandas со следующими столбцами, сохраняющий всю информацию в наборе данных.
Time, G_x, G_y, G_z, A_x, A_y, A_z, Label, Label_Measurement,Section
0 1 2 3 3 2 1 Label_1 Label_1_1 1
1 3 1 1 2 2 1 Label_1 Label_1_1 1
0 1 2 3 3 2 1 Label_1 Label_1_2 1
1 3 1 1 2 2 1 Label_1 Label_1_2 1
0 1 2 3 3 2 1 Label_2 Label_2_1 2
1 3 1 1 2 2 1 Label_2 Label_2_1 2
У меня есть несколько идей об элементах, которые, я думаю, мне понадобятся для решения.
Я могу сделать несколько счетчиков, чтобы подсчитать каждый тип строки в файле по мере их появления:
counter_New_section = 0
counter_Label = 0
counter_A_row = 0
counter_G_row = 0
, и я могу перебирать каждую строку файла и использовать некоторые условные обозначения для определениякакой тип линии - каждая линия, и выполните с ней соответствующие действия:
with open(dataset.txt) as dataset:
for line in dataset:
if line.startswith('N>') ... do the appropriate
if line.startswith('L>') ... " "
if line.startswith('G>') ... " "
if line.startswith('A>') ... " "
... Я борюсь.Каков наилучший подход для достижения желаемого результата вывода данных?
Спасибо