Поиск с помощью .loc[ ] и вывод строки в боте телеграм

Какое значение необходимо указать в "first = data.loc[]" и "second = data.loc[]", чтобы при поиске юнита, мы вводили имя, допустим Лучник и он выводил бы следующее сообщение столбиком:

Имя существа Лучник
Уровень 2
Атака 6
Защита 3
Урон 2-3
Здоровье 10
Скорость 4
Прирост 9
Цена 100 золота

И так с любым другим юнитом. Так же и с артефактами. Вводим например Ребра и нам выводит:

Название артефакта Ребра
Характеристики Сила +2

код полностью

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

from telebot import types

bot = telebot.TeleBot("6745636************")

@bot.message_handler(commands=['start'])
def start_command(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    item1 = types.KeyboardButton('Найти юнит')
    item2 = types.KeyboardButton('Найти артефакт')

    markup.add(item1, item2)

    bot.send_message(message.chat.id, "{0.first_name}, выберите вариант.".format(message.from_user, bot.get_me()), parse_mode='html', reply_markup=markup)

@bot.message_handler(content_types=['text'])
def find_unit(message):
    try:
      if message.text == 'Найти юнит':
        send = bot.send_message(message.chat.id, 'Напишите название существа, которое нужно найти. Важно: писать название нужно точно, без ошибок.')
        bot.register_next_step_handler(send, unit)

      elif message.text == 'Найти артефакт':
        send = bot.send_message(message.chat.id, 'Напишите название артефакта, который нужно найти. Важно: писать название нужно точно, без ошибок.')
        bot.register_next_step_handler(send, artifact)

    except: 
        bot.send_message(message.chat.id, 'Ошибка! Не найдено')

def unit(message):
    data = pd.read_excel("database.xlsx", sheet_name='units', index_col ='Имя существа') 
    first = data.loc[**?**]
    bot.send_message(message.chat.id, first)

def artifact(message):
    data = pd.read_excel("database.xlsx", sheet_name='artifacts', index_col ='Название артефакта') 
    second = data.loc[**?**]
    bot.send_message(message.chat.id, second)


bot.polling()

Содержание файла database.xlsx

введите сюда описание изображения

Заранее спасибо.


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

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

Попробуйте так:

first = data.loc[data["Имя существа"] == "Лучник"]

для поиска сразу нескольких значений:

res = data.loc[data["Имя существа"].isin(names)]
→ Ссылка