Для анализа и визуализации данных я выбрал датасет, который непосредственно связан с моей профессией.
Я являюсь комерческим мастером по настольной ролевой игре ДнД. Каждый раз для своих игр я трачу несколько дней на подбор оптимально подходящих противников для игроков.
На сайте Kaggle я наткнулся на датасет с базой данных всех монстров ДнД. Эта таблица стала настоящим открытием для меня. Ведь при помощи аналитики через библиотеку pandas я смогу оптимизировать время, затрачиваемое на подбор противников более, чем в 7 раз. А совбодное время я использую для улучшения сценария.


фото-репортаж с моих игр по ДнД
Подготовка к анализу
В коде использованы библиотека pandas для работы с csv-файлом, matplotlib.pyplot для основной визуализации данных, NumPy для работы с многомерными массивами.

Подготовка к работе
Работа с данными
Первостепенно мне нужно было понять с какими данными я могу работать. Какие в приведенном датасете существуют характеристики.
Для этого отобразил названия всех столбцов по порядку.
Как сказал Айн Рэнд: «Нельзя приготовить омлет, не разбив яйца».
Также и не получится проанализировать таблицу, не увидев полотно ошибок, хотя бы раз.
В моем случае, при попытке начальной систематизации противников по уровню опасности (cr) я пришел к тому, что система начала выдавать ошибку.
Ошибка говорит, что в столбце cr есть не числовые значения (например, текст типа «1/8» или «½» вместо чисел). Если все оставить итменно так, то я лишусь основного показателя для систематизации и классификации данных. Так оставлять это нельзя.
Код с ошибкой / Исправление ошибки
Для того, чтобы использовать значения столбца cr я перевел все значения из него в числа.
Описание применения генеративной модели
1-2 примеры промтов в chat GPT, 3-4 примеры промтов в deepseek
Визуализация
Зависимость уровня опасности противников от их здоровья и брони
Для планирования боя я для начала захотел понять какого уровня сложности противников мне нужно брать. Для этого я решил упорядочить противников по их уровню сложности и посмотреть какой разброс количества пунктов здоровья и противник из каждого уровня.
График разбрсоа ХП
Также, у противников в ДнД есть класс брони, который показывает сложность попадания по нему. Таким образом эти данные тоже необходимо учитывать на равне с пунктами здоровья
Разброс класса брони
Теперь я хочу отобразить для наглядности все эти данные вместе и вывести средние данные по здоровью и броне для каждого уровня сложности.
Красивый двойной график с усредненными данными по здоровью и броне
Противники с уровнем опасности 1
Визуализация данных обо всех противниках с уровнем сложности 1
В ходе изучения данных я пришел к выводу, что для не сложных столкновений мне подходят противники уровня сложности 1.
Теперь я хочу увидеть всех противников с этим уровнем и отобразить у каждого пункты здоровья и брони. Так я смогу выбрать кокнретных противников, а также увидеть какие в целом бывают противники с уровнем сложности 1.
Код для чтения данных о противниках с уровнем сложности 1
Создание групп противников
Противники редко повляются п одному, так что мне нужна группа из нескольких противников.
Предположим, что мне подойдут группы из случайных противников:
Визуализация заранее заготовленных группы случайных противников
Теперь я хочу пойти дальше и создать Дешборд сразу с несколькими группами.


Дешбоард с несколькими группами случайных противников
Статистика по размерам противников
Для подбора протвинков мне необходимо узнать статистическую редкость того или иного размера существ.


Дигарама виззуализирующая статистику распостранения разных размеров противников
Синтаксис диаграмы размеров
Выбор босса
Теперь, когда с обычными противниками определились, время выбрать босса.
В своих играх я делаю боссами тех противников, у которых есть свойство «легендарный».
Так игра создается под игроков с малым уровнем, я хочу отобразить топ10 противников со свойством «легендарный», но при этом я самым наименьшим уровнем сложности.


Синтаксис легендарных противников с самым низким уровнем сложности
Визуализация слабейших легендарных противников
Вот и все! Благодаря аналиизу датасета у меня есть готовые группы противников, подходящих по здоровью, броне и уровню опасности для столкновения с моими игроками. А также я выбрал босса Единорога.
Итог
По итогам проведенной игры, в которйо я использовал противников, приведенных из данного проекта, я получил множества положительных отзывов от своих постоянных игроков.
Также мой доход, за счет полученных чаевых за необычайно яркие эмоции, увеличился в 1.5 раза. При этом у меня есть больше свободного времени


























