【Олимпийские игры 2020 в Токио】Анализ и визуализация данных

искусственный интеллект

Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность

написать впереди

Прежде всего, я должен заявить, что название не является неправильным! Это [Олимпийские игры 2020 в Токио]. Все, кто должен был смотреть прямую трансляцию, знают. Что касается причины, вы можете сами найти ее на Baidu. Сегодня я показал своей девушке статью, и она даже прямо сказала, что мой заголовок был неправильным, ха-ха , так что я чувствую, что здесь что-то есть. Мне нужно объяснить~ 8 августа подошли к концу Олимпийские игры в Токио, которые принимала страна японцев... эээ... сына, которые хорошо провели время. Во время Олимпиады организаторыСтранная операцияЯ выглядел глупо.В конце концов, они также протиснулись в тройку лидеров уникальными «методами».Прежде всего, я хотел бы поблагодарить их за то, что они освежили мое представление об Олимпиаде. В то же время я хотел бы воспользоваться этой возможностью, чтобы взглянуть на призовую ситуацию на Олимпийских играх этого года в моей стране.


Сбор данных

Данные, связанные с Олимпийскими играми, поступают из следующих двух интерфейсов.

app-generate.migu video.com/VMS-live big T… app-generate.migu video.com/VMS-live big T…

:one: Давайте воспользуемся первым интерфейсом для анализа и получения необходимых данных, в основном включая рейтинг страны и количество медалей. Открыв ссылку, вы обнаружите, что основная информация находится вallMedalDataвнутри поля.Подтвердите содержимое, которое необходимо извлечь на веб-странице, а затем передайте соответствующийkeyизвлекать.

import requests
import pandas as pd

data_url = 'https://app-sc.miguvideo.com/vms-livedata/olympic\
-medal/total-table/15/110000004609'
# 请求数据
data = requests.get(data_url).json()
df = pd.DataFrame()

for item in data['body']['allMedalData']:
    df = df.append([[item['countryName'],
                     item['countryId'],
                     item['rank'],
                     item['goldMedalNum'],
                     item['silverMedalNum'],
                     item['bronzeMedalNum'],
                     item['totalMedalNum']]])
# 修改列名
df.columns = ['国家', '国家id', '排名', '金牌', '银牌', '铜牌', '奖牌']
# 重置索引
df.reset_index(drop=True, inplace=True)
df.head()


:two: То же самое касается второй ссылки.

data_url = 'https://app-sc.miguvideo.com/\
vms-livedata/olympic-medal/detail-total/15/110000004609'

data = requests.get(data_url).json()
detail_df = pd.DataFrame()
# 请求数据
for item in data['body']['medalTableDetail']:
    detail_df = detail_df.append([[item['awardTime'],
                                   item['medalType'],
                                   item['sportsName'],
                                   item['countryId'],
                                   item['bigItemName']]])
# 修改列名
detail_df.columns = ['获奖时间', '奖牌类型', '运动员', '国家id', '运动类别']
# 重置索引
detail_df.reset_index(drop=True, inplace=True)
detail_df.head()


предварительная обработка данных

В данных, полученных вторым интерфейсом, нет названия страны, необходимо обратиться к данным первого интерфейса согласно "идентификатор страны"столбец для соответствия. Изменить"Тип медали", и измените "1, 2, 3" на "Золото, Серебро, Бронза".

detail_df.loc[detail_df['奖牌类型'] == 1, '奖牌类型'] = '金牌'
detail_df.loc[detail_df['奖牌类型'] == 2, '奖牌类型'] = '银牌'
detail_df.loc[detail_df['奖牌类型'] == 3, '奖牌类型'] = '铜牌'

courtry_df = df.loc[:, ['国家', '国家id']]
detail_df = pd.merge(detail_df, courtry_df, on='国家id', how = "inner")
detail_df.head()

После организации данных их можно сохранить локально для удобства визуализации.

df.to_csv('东京奥运会国家排名.csv', index=False)
detail_df.to_csv('东京奥运会获奖详情.csv', index=False)

визуализация данных

Распределение медалей по регионам

Давайте сначала посмотрим на распределение медалей в каждом регионе, чем темнее цвет, тем больше медалей (общее количество). Регионы с большим количеством наград также отражают силу страны.

Первая десятка в медальном зачете

Создайте гистограмму с накоплением, чтобы отобразить десять лучших медалей. В каждом столбце указано количество золотых, серебряных и бронзовых медалей сверху вниз. Легенда не обрезана по краю, извините~在这里插入图片描述

Классификация золотодобывающих проектов Китая

Используйте круговую диаграмму для отображения категорий проектов, получивших золото в моей стране, напримергиревой спорт,подводное плавание,настольный теннисЭто всегда было нашим золотым фаворитом.在这里插入图片描述

Количество китайских медалей в реальном времени

На этой картинке в режиме реального времени показано состояние ежедневных приобретений золота, серебра и меди в моей стране, а также отчетливо виден отмеченный наградами статус каждого проекта каждый день.在这里插入图片描述

Синтетический канбан

Синтезируйте значки, сделанные выше, в панель инструментов, чтобы улучшить просмотр~在这里插入图片描述Поскольку карта слишком велика, на две доски добавлены кнопки прыжка, чтобы реализовать переход на доску. Эффект следующий.请添加图片描述

Суммировать

На этих Олимпийских играх сборная Китая показала хорошие результаты в большинстве соревнований, также были сохранены традиционные выгодные соревнования.Доминирование. Всего было получено 8 мелких предметов по тяжелой атлетике7 золотых и 1 серебряный, получить 8 мелких предметов дайвинга7 золотых и 5 серебряных, добился лучших результатов в истории. Глядя на проекты моей страны, приносящие золото, в целомширокий охват, В дополнение к полезным мероприятиям, он также завоевал золотые медали в батутной гимнастике, велоспорте, парусном спорте, фехтовании, гребле на водных каноэ, гребле, легкой атлетике, бадминтоне и других мероприятиях. Из-за малого количества данных невозможно более комплексно проанализировать все соревнования.Позвольте мне высказать собственное мнение.В то же время я с нетерпением жду выступления китайских спортсменов на следующих Олимпийских играх~



Это все для этой статьи, если вы чувствуете себя хорошо.❤ Ставь лайк и вперед! ! ! ❤
В дальнейшем я продолжу делиться статьями на тему "Анализ и визуализация данных в Python", если вам интересно, то можете обратить внимание и не теряться~.
Исходный код можно получить напрямую, выполнив поиск Python New Horizons через WeChat и ответив на «Tokyo Olympics»., для началаPythonИли хотите начатьPythonДрузья мои, вы также можете связаться со мной, чтобы общаться и учиться вместе, все от новичков.Иногда простой вопрос застревает надолго, но, может быть, кто-то другой вдруг это поймет.Искренне надеюсь, что все вместе смогут добиться прогресса.