En este artículo vamos a ver el análisis de las Olimpiadas usando Python. Los Juegos Olímpicos o Juegos Olímpicos modernos son los principales eventos deportivos internacionales que presentan competencias deportivas de verano e invierno en las que participan miles de atletas de todo el mundo en una variedad de competencias. Los Juegos Olímpicos se consideran la competencia deportiva más importante del mundo con la participación de más de 200 naciones.
El número total de eventos en los Juegos Olímpicos es de 339 en 33 deportes. Y para cada evento hay ganadores. Por lo tanto, se generan varios datos. Entonces, al usar Python analizaremos estos datos.
Módulos utilizados
- Pandas : se utiliza para analizar los datos,
- NumPy : NumPy es un paquete de procesamiento de arrays de propósito general.
- Matplotlib : es una extensión matemática numérica NumPy
- Seaborn : se utiliza para la visualización de gráficos estadísticos en Python.
Modelo de arquitectura:
Implementación paso a paso
Paso 1: Importación de bibliotecas
Python3
# importing all necessary libraries import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns
Paso 2: comprensión de la base de datos
Cuando se trata de datos olímpicos, tenemos dos archivos CSV. Uno que contiene los costos relacionados con los resultados deportivos de los Juegos Olímpicos de todos los años. Y otro contiene la información sobre los atletas de todos los años cuando participaron con información.
El archivo de datos CSV se puede descargar desde aquí: Conjuntos de datos
Paso 3: limpieza y formateo de datos
Importamos ambos conjuntos de datos usando el archivo . read_csv() en un marco de datos usando pandas y mostró las primeras 5 filas de cada conjunto de datos.
Python3
data = pd.read_csv('athlete_events.csv') # read file # data.head() display first 5 entry # data.describe about model # data.info give info about data print(data.head(), data.describe(), data.info())
Producción:
Paso 4: Fusionar dos DataFrame
Aquí vamos a fusionar dos marcos de datos usando pandas.merge() en python.
Python3
# regions and country noc data csv file regions = pd.read_csv('datasets_31029_40943_noc_regions.csv') print(regions.head()) # merging to data and regions frame merged = pd.merge(data, regions, on='NOC', how='left') print(merged.head())
Producción:
Análisis de datos de los Juegos Olímpicos
Los datos ahora están disponibles usando pandas y matplotlib. Veamos algunos ejemplos.
Análisis de datos de medallistas de oro
Crear un nuevo marco de datos que incluya solo a los medallistas de oro.
Python3
# creating goldmedal dataframes goldMedals = merged[(merged.Medal == 'Gold')] print(goldMedals.head())
Producción :
Medallista de oro con respecto a la edad:
Aquí vamos a crear una gráfica del número de medallas de oro con respecto a la edad. Para esto, crearemos un diagrama de conteo para la representación gráfica que muestra el eje X como la edad de los jugadores y el eje Y representa el número de medallas.
Python3
plt.figure(figsize=(20, 10)) plt.title('Distribution of Gold Medals') sns.countplot(goldMedals['Age']) plt.show()
Producción :
Imprime el número de atletas que son medallistas de oro y cuya edad es mayor de 50 años con su información.
Python3
goldMedals = merged[(merged.Medal == 'Gold')] print('The no of athletes is', goldMedals['ID'][goldMedals['Age'] > 50].count(), '\n') print(goldMedals[goldMedals['Age'] > 50])
Producción :
Cree un nuevo marco de datos llamado masterDisciplines en el que insertaremos este nuevo conjunto de personas y luego crearemos una visualización con él.
Python3
masterDisciplines = goldMedals['Sport'][goldMedals['Age'] > 50] plt.figure(figsize=(20, 10)) plt.tight_layout() sns.countplot(masterDisciplines) plt.title('Gold Medals for Athletes Over 50') plt.show()
Producción :
Mujeres que pueden jugar en verano
Muestre todas las mujeres atletas que han jugado en la temporada de verano y muestre el aumento de mujeres atletas después de un largo período a través de una representación gráfica.
Python3
womenInOlympics = merged[(merged.Sex == 'F') & (merged.Season == 'Summer')] print(womenInOlympics.head(10)) sns.set(style="darkgrid") plt.figure(figsize=(20, 10)) sns.countplot(x='Year', data=womenInOlympics) plt.title('Women medals per edition of the Games') plt.show()
Producción :
Los 5 países que ganaron más medallas
Aquí vamos a imprimir los 5 países principales y mostrarlos en el gráfico con catplot .
Python3
print(goldMedals.region.value_counts().reset_index(name='Medal').head()) totalGoldMedals = goldMedals.region.value_counts() .reset_index(name='Medal').head(5) g = sns.catplot(x="index", y="Medal", data=totalGoldMedals, height=6, kind="bar", palette="muted") g.despine(left=True) g.set_xlabels("Top 5 countries") g.set_ylabels("Number of Medals") plt.title('Medals per Country') plt.show()
producción:
Análisis de peso de los jugadores
Aquí vamos a ver el peso a lo largo del año para los levantadores de pesas masculinos a través de una representación gráfica usando un diagrama de puntos .
Python3
MenOverTime = merged[(merged.Sex == 'M') & (merged.Season == 'Summer')] wlMenOverTime = MenOverTime.loc[MenOverTime['Sport'] == 'Weightlifting'] plt.figure(figsize=(20, 10)) sns.pointplot('Year', 'Weight', data=wlMenOverTime, palette='Set2') plt.title('Weight over year for Male Lifters') plt.show()
Producción :
Publicación traducida automáticamente
Artículo escrito por 201903011rahulgkk y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA