Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность
написать впереди
Прежде всего, я должен заявить, что название не является неправильным! Это [Олимпийские игры 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
Друзья мои, вы также можете связаться со мной, чтобы общаться и учиться вместе, все от новичков.Иногда простой вопрос застревает надолго, но, может быть, кто-то другой вдруг это поймет.Искренне надеюсь, что все вместе смогут добиться прогресса.