Análisis de datos de los Juegos Olímpicos usando Python

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *