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




