как обработать исключение для каждого выражения pandas в python?

Создаю автоматизированное преобразование excel файла. Преобразование выполняю примерно так:

import pandas as pd
df = pd.DataFrame()
doc = pd.read_excel('input.xlsx')
df['Наименование'] = doc.loc[0, 'Наименование ПО']
df['Вид программы'] = 'ПО' 
df['Ответсвенный отдел'] = doc.loc[0, 'Отдел']
df['Тип проекта'] = 'Технологический'

В input.xlsx могут отсутствовать некоторые поля. Вопрос: Как мне обработать исключения одним выражением для всех выражений(строк)? Чтобы не писать try except для каждого выражения(строки)? Т.е. если падает исключение KeyError, то пропустить.


Ответы (1 шт):

Автор решения: CrazyElf

Ну, можно примерно так оптом такое обработать:

columns_fixed = {
    'Вид программы': 'ПО',
    'Тип проекта': 'Технологический',
}

columns_copy = {
    'Наименование': 'Наименование ПО',
    'Ответсвенный отдел': 'Отдел',
}

for k, v in columns_fixed.items():
    df[k] = v

for k, v in columns_copy.items():
    if v in doc.columns:
        df[k] = doc.loc[0, v]

Просто наполняете словари и запускаете код. Падать ничего не должно - наличие столбца в датафрейме предварительно проверяется.

Если нужно логирование или всё же ловля ошибок - всё это добавляется внутрь цикла один раз, копипасту делать не нужно будет. Но нужно будет подготовить словари соответствия полей.

→ Ссылка