Oaks Lab - Soluciones a los desafíos
Esta página contiene todas las soluciones a los desafíos de Oaks Lab.
Sala 0
Basta con ejecutar el código (sin realizar cambios):
# Completa los valores correctos
import pandas as pd
'display.max_columns', None)
pd.set_option(
= 'https://gist.githubusercontent.com/armgilles/194bcff35001e7eb53a2a8b441e8b2c6/raw/92200bc0a673d5ce2110aaad4544ed6c4010f687/pokemon.csv'
url = pd.read_csv(url)
df
# Mostrar las primeras filas
df.head()
# Verifica tu respuesta
import sala
sala.verificar(url, df)
Sala 1
Solución:
# Cargar datos nuevamente
import pandas as pd
'display.max_columns', None)
pd.set_option(
= 'https://gist.githubusercontent.com/armgilles/194bcff35001e7eb53a2a8b441e8b2c6/raw/92200bc0a673d5ce2110aaad4544ed6c4010f687/pokemon.csv'
url
= pd.read_csv(url)
df
# Explora los datos
print("Mostrando información general del dataset:")
= df.info()
info
print("\nMostrando descripción estadística del dataset:")
= df.describe()
desc print(desc)
# Verifica tu respuesta
import sala
sala.verificar(desc)
Sala 2
Ejecutar:
# Cargar nuevamente el dataset
import pandas as pd
import matplotlib.pyplot as plt
= 'https://gist.githubusercontent.com/armgilles/194bcff35001e7eb53a2a8b441e8b2c6/raw/92200bc0a673d5ce2110aaad4544ed6c4010f687/pokemon.csv'
url = pd.read_csv(url)
df
# Contar Pokémon por tipo
= df['Type 1'].value_counts()
conteo
# Crear gráfico de barras
='bar')
conteo.plot(kind'Cantidad de Pokémon por Tipo')
plt.title('Tipo')
plt.xlabel('Cantidad')
plt.ylabel(=45)
plt.xticks(rotation
plt.show()
# Número total de tipos de Pokémon
= conteo.shape[0] # ¿Cuántos tipos hay?
respuesta
# Verifica tu respuesta
import sala
sala.verificar(respuesta)
Sala 3
Usar el código:
# Cargar datos
import pandas as pd
= 'https://gist.githubusercontent.com/armgilles/194bcff35001e7eb53a2a8b441e8b2c6/raw/92200bc0a673d5ce2110aaad4544ed6c4010f687/pokemon.csv'
url = pd.read_csv(url)
df
# Agrupar y calcular promedio
= df.groupby('Type 1')[['HP', 'Attack', 'Defense', 'Speed']].mean().reset_index()
promedio
# Definir respuestas
= promedio.sort_values("Attack", ascending=False)
promedio_orden_ataque = promedio_orden_ataque["Type 1"].values[0] # Tipo con mayor ataque promedio
respuesta_ataque
= promedio.sort_values("Defense", ascending=True)
promedio_orden_defensa = promedio_orden_defensa["Type 1"].values[0] # Tipo con menor defensa promedio
respuesta_defensa
print("Promedio por tipo:")
print(promedio)
print("Tipo con mayor ataque promedio:", respuesta_ataque)
print("Tipo con menor defensa promedio:", respuesta_defensa)
# Verifica tu respuesta
import sala
sala.verificar(respuesta_ataque, respuesta_defensa)
Sala 4
Usar el código:
import pandas as pd
import matplotlib.pyplot as plt
= 'https://gist.githubusercontent.com/armgilles/194bcff35001e7eb53a2a8b441e8b2c6/raw/92200bc0a673d5ce2110aaad4544ed6c4010f687/pokemon.csv'
url = pd.read_csv(url)
df
# Elegir columnas
= "Attack" # Por ejemplo: 'Attack', 'Defense', 'HP', 'Speed'
col_x = "Defense" # Por ejemplo: 'Attack', 'Defense', 'HP', 'Speed'
col_y = "orange" # Por ejemplo: 'orange', 'green', 'blue', 'red'
color
# Crear columna suma
'suma'] = df[col_x] + df[col_y]
df[
# Gráfico de dispersión
=(10, 6))
plt.figure(figsize=color)
plt.scatter(df[col_x], df[col_y], colorf'{col_x} vs {col_y} de Pokémon')
plt.title(
plt.xlabel(col_x)
plt.ylabel(col_y)
plt.grid()
plt.show()
# Mostrar Top 5 Pokémon
print("Top 5 Pokémon con mayor suma entre", col_x, "y", col_y)
= df[['Name', col_x, col_y, 'suma']].sort_values('suma', ascending=False).head(5)
tabla_top5 print(tabla_top5)
# Definir respuesta
= tabla_top5["Name"].values[0] # Escribe aquí el nombre del Pokémon con mayor suma
respuesta
# Verifica tu respuesta
import sala
sala.verificar(col_x, col_y, respuesta)
Sala final
Sin cambios. No es necesario ejecutar código.