Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

07 Desafío: vamos a practicar

1-Los estudiantes participaron en una actividad extracurricular y ganaron puntos extras. Estos puntos extras corresponden al 40% de su nota actual. Por lo tanto, crea una columna llamada "Puntos_extras" que contenga los puntos extras de cada estudiante, es decir, el 40% de su nota actual.

import pandas as pd
url = 'https://gist.githubusercontent.com/ahcamachod/807a2c1cf6c19108b2b701ea1791ab45/raw/fb84f8b2d8917a89de26679eccdbc8f9c1d2e933/alumnos.csv'
df = pd.read_csv(url)
df.head()

df['Puntos_extras'] = df['Nota']*0.4

2-Crea otra columna llamada "Notas_finales" que contenga las notas de cada estudiante sumadas con los puntos extras.

df['Nota_final'] = df['Nota'] + df['Puntos_extras']
df.head()

3-Dado que hubo una puntuación extra, algunos estudiantes que no habían sido aprobados antes pueden haber sido aprobados ahora. En función de esto, crea una columna llamada "Aprobado_final" con los siguientes valores:

True: si el estudiante está aprobado (la nota final debe ser mayor o igual a 7.0).
False: si el estudiante está reprobado (la nota final debe ser menor que 7.0).

df['Aprobado_final'] = df['Nota_final'] >= 7.0

4-Realiza una selección y verifica qué estudiantes no habían sido aprobados anteriormente, pero ahora fueron aprobados después de sumar los puntos extras.

Nuevos_aprobados = df[(df['Aprobado']=='False') & df['Aprobado_final']==True]
Nuevos_aprobados
1 respuesta

¡Hola Ariel, espero que estés bien!

Parece que estás trabajando en un ejercicio muy interesante con pandas en Python. El objetivo es manipular un DataFrame para calcular puntos extras, notas finales y verificar quiénes han aprobado después de sumar los puntos extras. Tu código está bastante bien, pero hay un pequeño detalle en la parte donde verificas qué estudiantes no habían sido aprobados anteriormente.

En la línea donde estás filtrando los nuevos aprobados, asegúrate de que la columna 'Aprobado' esté correctamente definida como un booleano o un string que puedas comparar. Si la columna 'Aprobado' en tu DataFrame original es un booleano, deberías usar False sin comillas. Si es un string, entonces está bien usar 'False'.

Aquí te dejo un ejemplo de cómo podrías ajustar esa parte del código:

# Asegúrate de que la columna 'Aprobado' está en el formato correcto
# Si 'Aprobado' es un string, tu código está bien
# Si 'Aprobado' es un booleano, usa False sin comillas

# Filtrar los nuevos aprobados
Nuevos_aprobados = df[(df['Aprobado'] == False) & (df['Aprobado_final'] == True)]
Nuevos_aprobados

Espero que esto te ayude a resolver tu duda y a seguir adelante con tu ejercicio. ¡Bons estudios!