Menu
Coddy logo textTech

Transformador de datos

Parte de la sección Logic & Flow del Journey de Python de Coddy — lección 78 de 78.

challenge icon

Desafío

Difícil

Crea una función llamada transform_dataset que procese una lista de registros de estudiantes para su análisis.

Cada registro es un diccionario que contiene:

  • student_id: Un identificador único para el estudiante
  • grades: Una lista de calificaciones numéricas
  • subjects: Una lista de asignaturas que el estudiante está cursando

Tu función debe:

  1. Calcular el promedio de calificaciones para cada estudiante
  2. Incluir solo a los estudiantes que tengan todas sus calificaciones por encima de 70 (estudiantes calificados); debes usar la función all() de Python para verificar esta condición
  3. Crear un resumen de las asignaturas cursadas por los estudiantes calificados, contando cuántos estudiantes calificados cursan cada asignatura
  4. Devolver un diccionario con dos claves:
    • qualified_students: Un diccionario que mapea los IDs de los estudiantes con su promedio de calificaciones (redondeado a 2 decimales)
    • subject_summary: Un diccionario que mapea las asignaturas con el recuento de estudiantes calificados que cursan dicha asignatura

Nota: La función all() en Python devuelve True solo si todos los elementos en el iterable son verdaderos. Por ejemplo, all(grade > 70 for grade in grades) devolverá True solo si cada calificación es superior a 70.

Ejemplo de Entrada:

[
    {
        "student_id": "S123", 
        "grades": [88, 92, 85], 
        "subjects": ["Math", "Science", "History"]
    },
    {
        "student_id": "S124", 
        "grades": [65, 95, 80], 
        "subjects": ["Math", "Science", "English"]
    },
    {
        "student_id": "S125", 
        "grades": [91, 89, 92], 
        "subjects": ["Math", "Physics", "History"]
    }
]

Ejemplo de Salida:

{
    'qualified_students': {'S123': 88.33, 'S125': 90.67}, 
    'subject_summary': {'Math': 2, 'Science': 1, 'History': 2, 'Physics': 1}
}

Pruébalo tú mismo

def transform_dataset(data):
    # Tu solución aquí
    
    # Paso 1: Calcular el promedio de calificaciones para cada estudiante y filtrar estudiantes calificados
    # (estudiantes con todas las calificaciones superiores a 70)
    
    # Paso 2: Crear un resumen de las materias cursadas por los estudiantes calificados
    
    # Paso 3: Devolver el diccionario final con qualified_students y subject_summary
    pass

Todas las lecciones de Logic & Flow