Transformador de datos
Parte de la sección Logic & Flow 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 para el estudiantegrades: Una lista de calificaciones numéricassubjects: Una lista de asignaturas que el estudiante está cursando
Tu función debe:
- Calcular el promedio de calificaciones para cada estudiante
- 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 - Crear un resumen de las asignaturas cursadas por los estudiantes calificados, contando cuántos estudiantes calificados cursan cada asignatura
- 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
passTodas las lecciones de Logic & Flow
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 diccionarios