Концепция
Динамика спортивных достижений стран на Олимпийских играх в период с 1896 по 2024 год: выявление ключевых трендов, изменений в лидерстве и факторов, влияющих на медальный зачет
Для исследования я выбрала датасет «Olympics (1896-2024).csv», который содержит данные о медалях (золотых, серебряных, бронзовых и общее число) стран за период с 1896 по 2024 год. Данные были получены с Kaggle.
Этот набор данных интересен, поскольку:
- Он охватывает длительный временной промежуток, позволяя отслеживать динамику спортивных успехов стран
- Данные содержат как количественные показатели (количество каждого типа медалей), так и ранжирование стран, что даёт возможность глубоко проанализировать тренды
- Такой анализ может выявить изменения в лидерстве, влияние глобальных событий на спортивные достижения и помочь понять, какие страны традиционно доминируют в спорте
В данном проекте использовался ChatGPT для поиска подсказок по улучшению стилизации графиков. В процессе работы использовались следующие промпты: – Как сгруппировать данные по столбцу Year с помощью Pandas? – Как настроить стиль графиков в Seaborn для создания консистентной инфографики?
Ссылка на модель: https://openai.com/chatgpt
Ссылка на блокнот с кодом: https://colab.research.google.com/drive/1_zrKIzyJA_EoZlW-ilF_bAHGaRHFb3fa#scrollTo=xHrC_XjJdkee
Вводная часть анализа и подбор графиков
Сначала я загрузила CSV-файл с данными при помощи Pandas и провела предварительную очистку: преобразовала столбец Year к числовому типу, обработала пропуски. Потом сгруппировала данные по годам, чтобы анализировать динамику общего количества медалей, агрегировала данные по странам для определения топ-10 стран по золотым медалям за весь период, подсчитала суммарное распределение типов медалей за весь период. Далее построила следующие графики: столбчатая диаграмма для топ-10 стран по золотым медалям, круговая диаграмма, иллюстрирующая распределение типов медалей за весь период, линейный график, отображающий тенденции общего количества медалей по годам, scatter plot (с регрессионной линией) для анализа зависимости между количеством золотых медалей и общим числом медалей (по всем годам) и гистограмма распределения общего числа медалей, объединённых за все года. Для стилизации графиков мною использована современная цветовая палитра (“viridis” из Seaborn) и настройки Matplotlib, чтобы придать оригинальный внешний вид визуализациям
Этапы работы и описание кода
Ниже приведён пример кода. Код включает все этапы: от загрузки данных и их очистки до построения графиков
Настройка стиля графиков
Настраиваю стиль отображения графиков, выбираю тему Seaborn с палитрой "viridis" и устанавливаю общие параметры для графиков (размер фигур, размеры шрифтов и т.д.)
Загрузка данных
Здесь читаю CSV-файл с данными олимпийских медалей с помощью Pandas и вывожу первые строки датасета для предварительного осмотра его структуры
Предварительная обработка данных. Приведение столбца 'Year' к числовому типу
Преобразую столбец 'Year' в числовой тип и удаляю те строки, где год не удалось преобразовать (получился NaN)
Для контроля качества данных вывожу общую информацию о датасете
Агрегация данных
Агрегирую данные по годам и суммирую количество золотых, серебряных, бронзовых и общее количество медалей для анализа динамики по годам
Для определения стран-лидеров агрегирую данные по странам (столбец NOC) и суммирую золотые медали за весь период, после чего выбираю топ-10
Подсчитываю суммарное количество медалей каждого типа за весь период
Визуализация данных
Строю столбчатую диаграмму для визуального сравнения общего количества золотых медалей у топ-10 стран за весь период
Используя круговую диаграмму, визуализирую доли каждого типа медалей за весь период
Строю линейный график, который показывает, как менялось общее количество медалей с течением времени
Scatter plot с регрессионной линией
Строю scatter plot для анализа зависимости между количеством золотых медалей и общим числом медалей (используем данные по всем записям) с нанесением регрессионной линии




