Исходный размер 1024x1536

Анализ данных бестиария ДнД

Для анализа и визуализации данных я выбрал датасет, который непосредственно связан с моей профессией.

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

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

фото-репортаж с моих игр по ДнД

Подготовка к анализу

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

Исходный размер 662x177

Подготовка к работе

Работа с данными

Первостепенно мне нужно было понять с какими данными я могу работать. Какие в приведенном датасете существуют характеристики.

Для этого отобразил названия всех столбцов по порядку.

Исходный размер 703x678

Как сказал Айн Рэнд: «Нельзя приготовить омлет, не разбив яйца».

Также и не получится проанализировать таблицу, не увидев полотно ошибок, хотя бы раз.

В моем случае, при попытке начальной систематизации противников по уровню опасности (cr) я пришел к тому, что система начала выдавать ошибку.

Ошибка говорит, что в столбце cr есть не числовые значения (например, текст типа "1/8" или "1/2" вместо чисел). Если все оставить итменно так, то я лишусь основного показателя для систематизации и классификации данных. Так оставлять это нельзя.

0

Код с ошибкой / Исправление ошибки

Для того, чтобы использовать значения столбца cr я перевел все значения из него в числа.

Описание применения генеративной модели

В качестве дополнитлеьного инструментария для синтаксиса и разбора ошибок в коде я использовал DeepSeek и ChatGPT.

0

1-2 примеры промтов в chat GPT, 3-4 примеры промтов в deepseek

Визуализация

Зависимость уровня опасности противников от их здоровья и брони

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

0

График разбрсоа ХП

Также, у противников в ДнД есть класс брони, который показывает сложность попадания по нему. Таким образом эти данные тоже необходимо учитывать на равне с пунктами здоровья

0

Разброс класса брони

Теперь я хочу отобразить для наглядности все эти данные вместе и вывести средние данные по здоровью и броне для каждого уровня сложности.

0

Красивый двойной график с усредненными данными по здоровью и броне

Противники с уровнем опасности 1

Исходный размер 1400x1028

Визуализация данных обо всех противниках с уровнем сложности 1

В ходе изучения данных я пришел к выводу, что для не сложных столкновений мне подходят противники уровня сложности 1.

Теперь я хочу увидеть всех противников с этим уровнем и отобразить у каждого пункты здоровья и брони. Так я смогу выбрать кокнретных противников, а также увидеть какие в целом бывают противники с уровнем сложности 1.

0

Код для чтения данных о противниках с уровнем сложности 1

Создание групп противников

Противники редко повляются п одному, так что мне нужна группа из нескольких противников.

Предположим, что мне подойдут группы из случайных противников:

0

Визуализация заранее заготовленных группы случайных противников

Анализ данных бестиария ДнД
Проект создан 05.02.2026