Какой наилучший вариант сокращения данного кода?

Подскажите, как сократить код, чтобы не расписывать каждое значение из таблицы. Например, человек вводит Имя, которое так-же находится в файле xlsx и выводит всю строку где это Имя содержится. Грубо говоря смысл такой:

if a == 'Вводим любое имя из таблицы':
    print(un.loc['Ищет это имя в таблице и выводит всю строку где это имя содержится'])

Текущий код:

   # -*- coding: utf-8 -*-
    import pandas as pd

    un = pd.read_excel(r"database.xlsx", sheet_name='units', index_col ='Имя существа')
    a = input()

    if a == 'Копейщик':
        print(un.loc['Копейщик'])
    elif a == 'Алебардист':
        print(un.loc['Алебардист'])
    elif a == 'Лучник':
        print(un.loc['Лучник'])
    elif a == 'Стрелок':
        print(un.loc['Стрелок'])
    elif a == 'Грифон':
        print(un.loc['Грифон'])
    elif a == 'Королевский грифон':
        print(un.loc['Королевский грифон'])
    else: print('Ошибка')

Ссылка на database.xlsx
https://my-files.su/tgksh0


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

Автор решения: MaxU
In [10]: a = 'Стрелок'

In [11]: print(un.loc[a] if a in un.index else "Ошибка")
id            marksman
Уровень             2+
Атака                6
Защита               3
Урон               2-3
Здоровье            10
Скорость             6
Прирост              9
Цена        150 золота
Name: Стрелок, dtype: object

In [12]: a = "Blah-Blah"

In [13]: print(un.loc[a] if a in un.index else "Ошибка")
Ошибка

вариант с обработкой исключения:

try:
    print(un.loc[a])
except KeyError:
    print("Ошибка")
→ Ссылка