
Введение
Для анализа были выбраны данные с Kaggle Olympics Medal List (1896-2024). Датасет содержит информацию о медалях, полученных странами на Олимпийских играх с 1896 года по 2024 год, с деталями по типу медали (золото, серебро или бронза).
Олимпийские игры это не только спортивное мероприятие, но и политическое. Олимпийские медали — индикатор спортивных достижений, развития страны и уровня инвестиций в спорт. Анализ поможет выявить динамику успехов стран и то, как она меняется с годами.
Для визуализации данных используется несколько видов графиков. — Столбчатые диаграммы — для топ-10 стран по золотым медалям. Наиболее наглядный вид графика для того, чтобы показать количественные данные и увидеть, у кого больше медалей. — Линейные графики — для анализа динамики медалей по годам и анализа динамики медалей только для России. Такой тип графика помогает выявить тренды и пики, а также сравнить несколько категорий. — Тепловая карта — для визуализации доминирующих стран в разные годы.
Этапы работы
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns
- Настройки визуализации sns.set_theme (style="darkgrid», palette="mako»)
- Загрузка данных from google.colab import files uploaded = files.upload () df = pd.read_csv («olympics.csv»)
- Просмотр структуры данных df.head ()
2. Очистка и предварительный анализ
— Проверяем пропущенные значения df.isnull ().sum ()
- Удаляем строки с отсутствующими значениями df.dropna (inplace=True)
- Преобразуем год в числовой формат df[«Year»] = df[«Year»].astype (int)
Далее проводим непосредственно анализ по нескольких категориям, рисуем графики.
3. Анализ топ-10 стран по количеству медалей
top_countries = df.groupby («NOC»)[«Gold»].sum ().sort_values (ascending=False).head (10)
- Визуализация plt.figure (figsize=(12, 6)) sns.barplot (x=top_countries.values, y=top_countries.index, palette="YlOrBr») plt.title («Топ-10 стран по количеству золотых медалей», fontsize=14) plt.xlabel («Количество золотых медалей») plt.ylabel («Страна») plt.show ()
4. Динамика медалей по годам
medals_by_year = df.groupby («Year»)[[«Gold», «Silver», «Bronze»]].sum ()
— Визуализация plt.figure (figsize=(14, 7)) medals_by_year.plot (kind="line», marker="o», figsize=(14, 7), colormap="coolwarm») plt.title («Динамика количества медалей по годам», fontsize=14) plt.xlabel («Год») plt.ylabel («Количество медалей») plt.legend ([«Gold», «Silver», «Bronze»]) plt.grid (True) plt.show ()
5. Тепловая карта доминирующих стран по годам
- Группируем данные по годам и странам, считаем количество медалей country_year_medals = df.groupby ([«Year», «NOC»])[«Gold»].sum ().unstack ().fillna (0)
- Визуализация plt.figure (figsize=(12, 8)) sns.heatmap (country_year_medals, cmap="coolwarm», linewidths=0.5) plt.title («Тепловая карта доминирующих стран по золотым медалям», fontsize=14) plt.xlabel («Страна») plt.ylabel («Год») plt.show ()
6. Динамика медалей для России
— Фильтруем данные только для России russia_data = df[df[«NOC»] == «Russia»]
- Группируем данные по годам и суммируем медали russia_medals_by_year = russia_data.groupby («Year»)[[«Gold», «Silver», «Bronze»]].sum ()
- Визуализация plt.figure (figsize=(14, 7)) russia_medals_by_year.plot (kind="line», marker="o», figsize=(14, 7), colormap="Set2») plt.title («Динамика медалей для России с 1896 по 2024 год», fontsize=14) plt.xlabel («Год») plt.ylabel («Количество медалей») plt.legend ([«Золото», «Серебро», «Бронза»]) plt.grid (True) plt.show ()
Для стилизации графиков были выбраны классические цвета и схемы. Я думаю, для того, чтобы информация легко считывалась, она должна быть представлена в удобном, понятном формате.
Описание применения генеративной модели
Для анализа графиков и описаний в проекте был использован искусственный интеллект. GPT-4 от Open AI. Ссылка на модель: https://chatgpt.com/
Итоговые графики и выводы
США занимают первое место с большим отрывом от остальных стран. Россия (и СССР) также находятся в топ-10, что подтверждает их успешные результаты в олимпийском движении. Тенденции показывают, что спортивные державы имеют долгосрочную доминацию в определённых видах спорта и на Олимпийских играх в целом.
Первые Олимпиады (до 1940-х годов) показывают низкий уровень золотых медалей, что связано с ограниченным количеством стран и видами спорта. В 1980-1990-х годах наблюдается значительный рост, что может быть связано с профессионализацией спорта и улучшением подготовленности спортсменов. Последние Олимпиады (после 2000 года) показывают стабильный рост, что связано с участием большего числа стран, а также развитием новых видов спорта, в которых медали также распределяются.
Тепловая карта поможет визуализировать, какие страны доминировали по золотым медалям в разные годы. Мы можем использовать тепловую карту для отображения данных, где яркость будет зависеть от количества медалей. США всегда доминировали, что видно по ярким цветам в их строках. Европейские страны, такие как Германия, Франция и Великобритания, также показывают стабильные результаты, хотя и с меньшими пиками.
Россия стабильно выигрывает много золотых медалей, а также серебряных и бронзовых. Однако в последние годы также можно заметить тенденцию к равномерному распределению всех типов медалей, что указывает на развитие различных видов спорта в стране.Тем не менее происходит медленный спад количество медалей. Возможно, этот тренд связан с международными политическими обстоятельствами.
Код