Исходный размер 1140x1600

Анализ данных и визуализация по списку Олимпийский медалей

PROTECT STATUS: not protected

Введение

Для анализа были выбраны данные с Kaggle Olympics Medal List (1896-2024). Датасет содержит информацию о медалях, полученных странами на Олимпийских играх с 1896 года по 2024 год, с деталями по типу медали (золото, серебро или бронза).

Олимпийские игры это не только спортивное мероприятие, но и политическое. Олимпийские медали — индикатор спортивных достижений, развития страны и уровня инвестиций в спорт. Анализ поможет выявить динамику успехов стран и то, как она меняется с годами.

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

  • Столбчатые диаграммы — для топ-10 стран по золотым медалям. Наиболее наглядный вид графика для того, чтобы показать количественные данные и увидеть, у кого больше медалей.
  • Линейные графики — для анализа динамики медалей по годам и анализа динамики медалей только для России. Такой тип графика помогает выявить тренды и пики, а также сравнить несколько категорий.
  • Тепловая карта — для визуализации доминирующих стран в разные годы.

Этапы работы

  1. Импорт библиотек и загрузка данных

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()

  1. Очистка и предварительный анализ
  • Проверяем пропущенные значения df.isnull().sum()

  • Удаляем строки с отсутствующими значениями df.dropna(inplace=True)

  • Преобразуем год в числовой формат df["Year"] = df["Year"].astype(int)

Далее проводим непосредственно анализ по нескольких категориям, рисуем графики.

  1. Анализ топ-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()
  1. Динамика медалей по годам

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()
  1. Тепловая карта доминирующих стран по годам
  • Группируем данные по годам и странам, считаем количество медалей 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()

  1. Динамика медалей для России
  • Фильтруем данные только для России 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/

Итоговые графики и выводы

Исходный размер 1090x557

США занимают первое место с большим отрывом от остальных стран. Россия (и СССР) также находятся в топ-10, что подтверждает их успешные результаты в олимпийском движении. Тенденции показывают, что спортивные державы имеют долгосрочную доминацию в определённых видах спорта и на Олимпийских играх в целом.

Исходный размер 1170x634

Первые Олимпиады (до 1940-х годов) показывают низкий уровень золотых медалей, что связано с ограниченным количеством стран и видами спорта. В 1980-1990-х годах наблюдается значительный рост, что может быть связано с профессионализацией спорта и улучшением подготовленности спортсменов. Последние Олимпиады (после 2000 года) показывают стабильный рост, что связано с участием большего числа стран, а также развитием новых видов спорта, в которых медали также распределяются.

Исходный размер 949x944

Тепловая карта поможет визуализировать, какие страны доминировали по золотым медалям в разные годы. Мы можем использовать тепловую карту для отображения данных, где яркость будет зависеть от количества медалей. США всегда доминировали, что видно по ярким цветам в их строках. Европейские страны, такие как Германия, Франция и Великобритания, также показывают стабильные результаты, хотя и с меньшими пиками.

Исходный размер 1161x634

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

Код

Ссылка на код: https://drive.google.com/file/d/1zO5k_6jjH2_A3JOHZUPw4LErhcrvira0/view?usp=sharing

Ссылка на датасет: https://drive.google.com/file/d/1WFWDMQLNf66HvHUEScphnruTYSW-n-kj/view?usp=sharing

Анализ данных и визуализация по списку Олимпийский медалей
Проект создан 23.03.2025
Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше