#python
#Python
Вопрос:
В python я пытаюсь настроить процесс, который мог бы принимать файл Excel и загружать его в фрейм данных pandas, затем выполнять некоторые вычисления для каждой строки, а затем экспортировать очищенный файл Excel. Я не всегда буду получать стандартизированный файл для приема. Файлы могут иметь разное количество столбцов, и имена заголовков столбцов всегда будут разными. Таким образом, один файл может иметь Field1, Field2, Field3, а другой может иметь FieldA, FieldB, FieldC. Сквозной процесс не будет обрабатывать несколько файлов одновременно, поэтому я не буду загружать несколько файлов за один запуск. Я бы запускал разные прогоны для каждого файла, который я получаю. Есть ли какой-нибудь простой способ легко переименовать заголовки столбцов в файлах Excel в заголовки столбцов в моем фрейме данных? Так, например, я могу легко сказать, что для файла 1 сопоставьте необработанный столбец Excel Field1 со столбцом данных Field_Final1, а также легко сказать, что для файла 2 сопоставьте необработанный столбец Excel FieldA со столбцом данных Field_Final1. Тогда в моих вычислениях я всегда могу ссылаться на Field_Final1. В идеале я мог бы содержать это сопоставление в дополнительном файле конфигурации Excel.
**File 1**
Field_Final1 = Field1
Field_Final2 = Field2
Field_Final3 = Field3
**File 2**
Field_Final1 = FieldA
Field_Final2 = FieldB
Field_Final3 = FieldC
Комментарии:
1.
rename
метод во фрейме данных использует словарь или сопоставление функций для переименования всех столбцов в фрейме данных вы можете создать функцию, которая обрабатывает логику для ваших нестандартных файлов, а затем переименовывает столбцы по своему усмотрению2. лучше сохранить его как вложенный словарь
data = {"File 1": {"Field_Final1": "Field1", ...}, ..., "File 2": {"Field_Final1": "FieldA", ...}}
или список словарейdata = [{"Field_Final1": "Field1", ...}, ..., {"Field_Final1": "FieldA", ...}]
, а затем использоватьdata[0]
для получения полей для первого файла,3. Спасибо, это работает для меня. Теперь я смог сохранить сопоставление в Excel, а затем загрузить его в словарь.
4. Есть ли у вас какие-либо предложения о том, как я могу сохранить логику для вложенного оператора IF в файле Excel, который создаст новый столбец, который будет помечать строки на основе знаков меньше и больше, а затем ссылаться на него в моем коде python? Например, если у меня есть столбец в моем фрейме данных, который имеет значения в диапазоне от 100 до 1 000,00, и я хочу создать новый столбец, который будет помечать строки с «<200», «<2000», «<20000», «<200000», «<=1000000». Мое текущее решение — использовать функцию «вырезать» и сохранить ячейки и метки, которые я хочу применить в Excel. Любые другие способы сделать это?