Transformador de datos
Parte de la sección Lógica y flujo del Journey de Python de Coddy. Lección 78 de 78.
Desafío
DifícilCrea 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 del estudiantegrades: Una lista de calificaciones numéricassubjects: Una lista de las asignaturas que cursa el estudiante
Tu función debería:
- Calcular la calificación promedio de cada estudiante
- Incluir solo a los estudiantes cuyas calificaciones sean todas superiores a 70 (estudiantes que cumplen los requisitos); deberías usar la función
all()de Python para comprobar esta condición - Crear un resumen de las asignaturas que cursan los estudiantes que cumplen los requisitos, contando cuántos de ellos cursan cada asignatura
- Devolver un diccionario con dos claves:
qualified_students: Un diccionario que asigna a cada ID de estudiante su calificación promedio (redondeada a 2 decimales)subject_summary: Un diccionario que asigna a cada asignatura la cantidad de estudiantes que cumplen los requisitos y la cursan
Nota: La función all() de Python devuelve True solo si todos los elementos del iterable son verdaderos. Por ejemplo, all(grade > 70 for grade in grades) devolverá True solo si todas las calificaciones son superiores a 70.
Entrada de ejemplo:
[
{
"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"]
}
]Salida de ejemplo:
{
'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: Calcula la calificación promedio de cada estudiante y filtra a los estudiantes que cumplen los requisitos
# (estudiantes con todas las calificaciones superiores a 70)
# Paso 2: Crea un resumen de las asignaturas cursadas por los estudiantes que cumplen los requisitos
# Paso 3: Devuelve el diccionario final con qualified_students y subject_summary
passTodas las lecciones de Lógica y flujo
1Exploración de variables
ConstantesAsignación de múltiples variablesIntercambio de variablesVariables de marcador de posiciónRedondear númerosCasting de listas4Aplicación de Agenda de Contactos
Mostrar MenúAgregar Contacto7Conjuntos Parte 2
Operaciones matemáticas Parte 1Operaciones matemáticas Parte 2Resumen - Búsqueda del tesoroSubconjuntos y superconjuntosIterar sobre conjuntosResumen - Rastreador de torneos10Comprensión de listas básica
La sintaxisCreación de listas simplesAñadir condicionesUso de agregación de datosResumen - La casa de las listasResumen - Elementos de libertad13Sistema de Gestión de Inventarios
Descripción general del proyectoAgregar artículo2Diccionarios Parte 1
¿Qué es un diccionario?Crear un diccionarioAcceder a los valoresModificar diccionariosResumen - Gestor de recetas5Toma de decisiones avanzada
Operador ternarioComprobaciones de pertenenciaComprobaciones de identidadErrores de sangríaRepaso - Filtro de vacaciones8Gestor de registros de estudiantes
Descripción general del proyectoAñadir estudiante11Funciones avanzadas
Retornar múltiples valoresFunciones Lambda Parte 1Funciones Lambda Parte 2Desafío de repaso - Lambda SortFunciones recursivas Parte 1Funciones recursivas Parte 2Repaso - Sumar listas anidadas14Funciones de orden superior
La función MapLa función FilterRepaso - Validador de emailsRepaso - Procesador de números3Diccionarios Parte 2
Métodos de diccionariosDiccionarios anidadosVerificación de clavesIterar sobre diccionariosResumen - Contador de frecuencia6Conjuntos - Parte 1
¿Qué es un conjunto?Operaciones básicasMétodos de conjuntosResumen - Eliminar duplicados9Agregación de datos avanzada
Uso de SumBúsqueda de mínimo y máximoOrdenar datos de manera eficienteRepaso - Ordenador de diccionariosPractica por tu cuenta: Compilador de Python online