Я загрузил данные из файла с разделителями табуляции в DF. Данные вкладки - это форма, заполненная шаблоном.
Критическая концепция заключается в том, что переменное число строк составляет одну запись в форме. В DF1 ниже каждый раз, когда индекс равен «A», начинается новая запись. Поэтому код должен будет перебирать строки, чтобы перестраивать каждую запись в DF2. Каждая запись будет представлена как одна строка в DF2.
На основе того факта, что каждая строка «A» в DF1 начинает новую запись формы (и соответствующую строку в DF2), мы можем видеть в DF1 ниже, есть только две записи в моем примере, и будет только две строки в DF2. Также важно: в каждой строке содержится разное количество фрагментов данных (столбцов). Z имеет 2 (тогда NA), A имеет 3, B имеет 4.
Все это необходимо сопоставить с DF2 в зависимости от индексных букв Z, A, B (обратите внимание, что индексных букв больше, но это для этого примера упрощенно).
DF 1
- A B C D
Z xyz 5 NA NA
A COA aa bb NA
B RE 01 02 03
B DE 04 05 06
A COB dd ee NA
B RE 01 02 03
B DE 04 05 06
В прошлом я делал подобные вещи в VBA и использовал бы оператор CASE для преобразования данных. Я нашел хорошее начало использования словарей в этой теме:
Замены для оператора switch в Python?
Один пример кода в приведенной выше теме предлагает использовать словарь типа case case:
return{
'a': 1,
'b': 2,
}[x]
Кажется, что это будет работать, хотя я не уверен, как выполнить на практике. Кроме того, для каждого A, B и т. Д. c, указанного выше, мне нужно вывести несколько инструкций в зависимости от буквы индекса. По большей части, инструкции, где сопоставить в DF2. Например, в моем:
Индекс A:
Отображение столбца A в DF2.iloc[1]['B']
Отображение столбца B в DF2.iloc[1]['C']
Отображение столбца C в DF2.iloc[1]['D']
Указатель B:
Будет четыре инструкции, аналогичные приведенным выше.
DF2 будет выглядеть так:
- A B C D E F G H I J K L
1 xyz COA aa bb RE 01 02 03 DE 04 05 06
2 xyz COB dd ee RE 01 02 03 DE 04 05 06
Таким образом, для каждой строки в DF1 выполняется различное количество инструкций в зависимости от на «индексном письме». Все инструкции указывают код, куда помещать данные в DF2. Инструкция отображения для каждой отдельной буквы индекса всегда будет одинаковой для столбцов, будет изменяться только строка ( некоторый тип счетчика при перемещении из одной группы записей в другую в DF2).
Как я могу обработать различное количество инструкций для каждого типа букв алфавита в формате типа переключатель / регистр?
Спасибо