Введение
Для анализа были выбраны данные с 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()
- Очистка и предварительный анализ
Проверяем пропущенные значения df.isnull().sum()
Удаляем строки с отсутствующими значениями df.dropna(inplace=True)
Преобразуем год в числовой формат df["Year"] = df["Year"].astype(int)
Далее проводим непосредственно анализ по нескольких категориям, рисуем графики.
- Анализ топ-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()
- Динамика медалей по годам
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()
- Тепловая карта доминирующих стран по годам
Группируем данные по годам и странам, считаем количество медалей 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()
- Динамика медалей для России
Фильтруем данные только для России 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 года) показывают стабильный рост, что связано с участием большего числа стран, а также развитием новых видов спорта, в которых медали также распределяются.
Тепловая карта поможет визуализировать, какие страны доминировали по золотым медалям в разные годы. Мы можем использовать тепловую карту для отображения данных, где яркость будет зависеть от количества медалей. США всегда доминировали, что видно по ярким цветам в их строках. Европейские страны, такие как Германия, Франция и Великобритания, также показывают стабильные результаты, хотя и с меньшими пиками.
Россия стабильно выигрывает много золотых медалей, а также серебряных и бронзовых. Однако в последние годы также можно заметить тенденцию к равномерному распределению всех типов медалей, что указывает на развитие различных видов спорта в стране.Тем не менее происходит медленный спад количество медалей. Возможно, этот тренд связан с международными политическими обстоятельствами.
Код
Ссылка на код: https://drive.google.com/file/d/1zO5k_6jjH2_A3JOHZUPw4LErhcrvira0/view?usp=sharing
Ссылка на датасет: https://drive.google.com/file/d/1WFWDMQLNf66HvHUEScphnruTYSW-n-kj/view?usp=sharing




