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.
#Para saber cuántos datos nulos tenemos
datos.isnull().sum()
#Los valores nulos los tenemos en la columna de "notas"
#colocando un valor de 0
datos.filln(0)
Los estudiantes "Alicia" y "Carlos" ya no forman parte del grupo. Por lo tanto, elimínalos de la base de datos.
#aplico un filtro y lo guardo en una variable
datos_eliminar = datos.query('Nombre == "Alicia" | Nombre == "Carlos"').index
#ahora elimino estos registros
datos.drop(datos_eliminar, axis=0, inplace=True)
Aplica un filtro que seleccione solo a los estudiantes que fueron aprobados.
#veo que hay un problema porque los datos de la columna "Aprobado" son
#formato de strings, y hay uno cuyo valor es "Verdadero" en lugar de "True"
# Reemplazar el 'verdadero' por 'true'
datos['Aprobado'] = datos['Aprobado'].replace({'Verdadero': 'True'})
#Ahora sí creo el filtro
seleccion = datos['Aprobado'] == 'True' #es type object.
#lo guardo en una variable
estudiantes_aprobados = datos[seleccion]
Guarda el DataFrame que contiene solo a los estudiantes aprobados en un archivo CSV llamado "alumnos_aprobados.csv".
estudiantes_aprobados.to_csv('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.
estudiantes_aprobados = estudiantes_aprobados.replace(7.0, 8.0)