как обработать исключение для каждого выражения 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 шт):
Ну, можно примерно так оптом такое обработать:
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]
Просто наполняете словари и запускаете код. Падать ничего не должно - наличие столбца в датафрейме предварительно проверяется.
Если нужно логирование или всё же ловля ошибок - всё это добавляется внутрь цикла один раз, копипасту делать не нужно будет. Но нужно будет подготовить словари соответствия полей.