Para practicar los métodos aprendidos a lo largo de esta lección y aprender nuevos, realizaremos algunos tratamientos y selecciones utilizando un archivo CSV diferente: alumnos.csv.
Este archivo es el mismo que se utilizó para resolver los desafíos de la lección 1 y contiene datos de estudiantes de un curso superior.
Basándonos en esto, resolvamos los problemas propuestos a continuación utilizando los conocimientos adquiridos hasta ahora.
Verifica si la base de datos contiene datos nulos y, en caso de tenerlos, realiza el tratamiento de estos datos nulos de la manera que consideres más coherente con la situación.
Los estudiantes "Alicia" y "Carlos" ya no forman parte del grupo. Por lo tanto, elimínalos de la base de datos.
Aplica un filtro que seleccione solo a los estudiantes que fueron aprobados.
Guarda el DataFrame que contiene solo a los estudiantes aprobados en un archivo CSV llamado "alumnos_aprobados.csv".
Extra: Al revisar las calificaciones de los estudiantes aprobados, notamos que algunas calificaciones eran incorrectas. Las estudiantes que obtuvieron una calificación de 7.0, en realidad tenían un punto extra que no se contabilizó. Por lo tanto, reemplaza las calificaciones de 7.0 en la base de datos por 8.0. Consejo: busca el método replace.
import pandas as pd
# Cargar el dataset desde la URL proporcionada
url = "https://gist.githubusercontent.com/ahcamachod/807a2c1cf6c19108b2b701ea1791ab45/raw/fb84f8b2d8917a89de26679eccdbc8f9c1d2e933/alumnos.csv"
df = pd.read_csv(url)
print("Vista inicial del dataset")
display(df.head())
Verifica si la base de datos contiene datos nulos y, en caso de tenerlos, realiza el tratamiento de estos datos nulos de la manera que consideres más coherente con la situación.
# 1 Verificar si existen datos nulos
print("\nVerificación de valores nulos")
print(df.isnull().sum())
# Tratamiento de datos nulos:
# Opción coherente: rellenar valores nulos numéricos con la media o 0,
# y los valores nulos en texto con 'Desconocido'.
df['Nombre'].fillna('Desconocido', inplace=True)
df['Edad'].fillna(df['Edad'].mean(), inplace=True)
df['Nota'].fillna(df['Nota'].mean(), inplace=True)
df['Aprobado'].fillna('No', inplace=True)
print("\nDataset después del tratamiento de nulos")
display(df.head())
Los estudiantes "Alicia" y "Carlos" ya no forman parte del grupo. Por lo tanto, elimínalos de la base de datos.
#2 Eliminar estudiantes "Alicia" y "Carlos"
df = df[~df['Nombre'].isin(['Alicia', 'Carlos'])]
print("\nDataset sin Alicia ni Carlos")
display(df)
Aplica un filtro que seleccione solo a los estudiantes que fueron aprobados.
#3 Filtrar solo estudiantes aprobados# Suponemos que la columna 'Aprobado' contiene valores como 'Sí' o 'No'
df_aprobados = df[df['Aprobado'].str.lower().isin(['Verdadero', 'True'])]
print("\n Estudiantes aprobados")
display(df_aprobados)
# Guardar el DataFrame filtrado como CSV
df_aprobados.to_csv('alumnos_aprobados.csv', index=False, encoding='utf-8')
print("\nArchivo 'alumnos_aprobados.csv' creado correctamente.")
Guarda el DataFrame que contiene solo a los estudiantes aprobados en un archivo CSV llamado "alumnos_aprobados.csv".
#4 Extra. Corregir calificaciones de 7.0 a 8.0
df_aprobados['Nota'].replace(7.0, 8.0, inplace=True)
print("\n Calificaciones corregidas (7.0 → 8.0) ")
display(df_aprobados)
# Guardar nuevamente el archivo corregido
df_aprobados.to_csv('alumnos_aprobados_corregido.csv', index=False, encoding='utf-8')
print("\n Archivo 'alumnos_aprobados_corregido.csv' creado con calificaciones actualizadas.")
Extra: Al revisar las calificaciones de los estudiantes aprobados, notamos que algunas calificaciones eran incorrectas. Las estudiantes que obtuvieron una calificación de 7.0, en realidad tenían un punto extra que no se contabilizó. Por lo tanto, reemplaza las calificaciones de 7.0 en la base de datos por 8.0. Consejo: busca el método replace.
# Descargar de los archivos CSV desde Google Colab
from google.colab import files
files.download('alumnos_aprobados.csv')
files.download('alumnos_aprobados_corregido.csv')