Sesión 4 Análisis de Datos
Introducción al Curso de Análisis de Datos
Bienvenida y Presentación
- El curso es una sesión propedéutica de análisis de datos, específicamente en el módulo 2 sobre Python para datos.
- Los instructores son la doctora Lisbeth Rodríguez Mazahua y Humberto Madín Vega. Se abordarán funciones en Python e introducción a SQL.
Instrucciones del Curso
- Las clases síncronas se rigen por el horario de la Ciudad de México; los estudiantes deben ingresar su nombre completo para el control de asistencia.
- Si no pueden asistir, deben registrar su nombre en los comentarios de la grabación para que su asistencia sea contabilizada.
- No se crean grupos en este curso, y cada estudiante tiene dos intentos para realizar la evaluación programada.
Funciones en Python e Introducción a SQL
Objetivos de la Sesión
- Comprender el uso de funciones en Python y los fundamentos básicos en SQL para crear consultas y bases de datos.
Definición y Uso de Funciones
- Las funciones son fragmentos reutilizables de código que realizan tareas específicas. Se comenzará con funciones simples.
- Una función simple es un bloque reutilizable que realiza una tarea específica sin necesidad de parámetros.
Ejemplo Práctico: Creación de Funciones
- Para definir una función se utiliza el comando
def, seguido del nombre y dos puntos. Por ejemplo,despedida.
- Al ejecutar la función definida, se muestra un mensaje como "Hasta luego, nos vemos mañana".
Ventajas del Uso de Funciones Simples
- Las funciones simples permiten reutilizar código, organizar mejor programas dividiéndolos en partes claras y específicas.
- Facilitan el mantenimiento del código; si hay cambios necesarios, solo se modifica la función sin afectar otras partes del programa.
Importancia de las Funciones en Programación
Ventajas del Uso de Funciones
- Las funciones permiten modificar el código una sola vez y llamarlas múltiples veces, facilitando el mantenimiento del programa y reduciendo errores al tener menos código.
- Al definir funciones con nombres específicos, se mejora la claridad del programa, lo que facilita la identificación y adaptación al contenido.
Argumentos y Parámetros en Funciones
- Los argumentos son datos externos que se pasan a una función para su ejecución. Permiten que la función produzca resultados utilizando información externa.
- Se utiliza el comando
defpara definir funciones en Python. Por ejemplo, se define una función llamadadiolaque recibe un nombre como argumento.
Ejemplos Prácticos de Funciones
- La función
di holapuede ser llamada múltiples veces con diferentes nombres sin necesidad de repetir el código.
- Se presenta otro ejemplo con la función
mostrar edad, donde se pasa un parámetro (edad), mostrando cómo las funciones pueden adaptarse a diferentes datos.
Flexibilidad y Reutilización
- Las funciones con argumentos hacen que los programas sean más flexibles y reutilizables, permitiendo trabajar con distintos datos sin cambiar el código base.
- Usar argumentos evita la repetición de código; si no tuviéramos argumentos, tendríamos que escribir múltiples líneas para cada caso específico.
Mantenimiento Eficiente del Código
- Separar datos de acciones permite cambios más fáciles; si se modifica la lógica dentro de una función, solo es necesario actualizarla en un lugar.
- Cada vez que se llama a una función modificada, los cambios se reflejan automáticamente en todas las instancias donde fue llamada.
Funciones por Posición
Definición y Ejemplo
- Las funciones por posición requieren que los argumentos sean pasados siguiendo el orden definido. Por ejemplo, en una función
resta, A debe ser pasado antes que B.
Implementación Práctica
- En el ejemplo de la resta, si enviamos 5 y 3 como parámetros A y B respectivamente, el resultado será 2. El orden es crucial para obtener resultados correctos.
Comparativa entre Suma y Resta
- Se define otra función llamada
suma, donde también se utilizan parámetros X e Y. Esta imprime directamente el resultado sin necesidad de retornar valores explícitamente.
¿Cómo funcionan los argumentos en Python?
Argumentos por posición
- La función
printse puede utilizar de diferentes maneras, y el orden de los argumentos puede afectar el resultado dependiendo de la operación. En la resta, cambiar el orden altera el resultado, mientras que en la suma no.
- Los argumentos por posición son valores enviados a una función siguiendo un orden predefinido en sus parámetros. Python asigna los valores según su posición, no por su nombre.
- Estos argumentos permiten pasar datos de forma rápida y sencilla sin necesidad de escribir mucho código. El orden es crucial; si se cambia, el resultado también cambia.
- En operaciones como la suma, el cambio de orden no afecta el resultado, pero en otras como la resta sí lo hace. Esto resalta la importancia del contexto al usar argumentos por posición.
Argumentos por nombre
- Los argumentos pueden ser pasados especificando el nombre del parámetro, lo que elimina la dependencia del orden definido previamente. Esto permite mayor flexibilidad al llamar funciones.
- Al definir una función para multiplicar dos variables (x e y), se puede enviar los valores sin importar su orden; Python detecta automáticamente a qué variable corresponde cada dato.
- Un ejemplo práctico muestra cómo al definir una función
presentar, se pueden enviar parámetros como nombre y edad sin preocuparse por su secuencia; solo importa que cada valor esté correctamente asociado a su argumento correspondiente.
- Al utilizar argumentos por nombre, se evita confusión sobre qué valor corresponde a cada parámetro. Esto es especialmente útil cuando hay múltiples parámetros involucrados.
Ventajas de los argumentos por nombre
- Usar argumentos por nombre reduce errores potenciales relacionados con el orden al llamar funciones con muchos parámetros. Asignar nombres específicos ayuda a evitar riesgos asociados con confusiones en las posiciones.
- Además, mejora la legibilidad del código: es más fácil entender qué valor recibe cada parámetro al leerlo. Facilita también el mantenimiento del código para futuras revisiones o modificaciones.
¿Qué son los argumentos por defecto en funciones?
Introducción a los argumentos en funciones
- Se discute la importancia de usar argumentos por nombre y posición para evitar la pérdida de datos al llamar funciones con múltiples parámetros.
Argumentos por defecto
- Los argumentos por defecto son parámetros que tienen un valor predefinido, utilizado automáticamente si no se proporciona uno al llamar a la función.
- Ejemplo práctico: se define una función llamada
sumaque retorna la suma de tres valores A, B y C, mostrando cómo funcionan los valores predefinidos.
Ejemplos prácticos
- Al llamar a la función
suma, independientemente del número de veces que se llame, siempre utilizará los mismos datos definidos (ej. 5 + 4 + 23).
- Se presenta otro ejemplo donde se define una función para presentar el nombre de un alumno y su ciudad (por defecto Veracruz), facilitando el uso repetido sin necesidad de enviar todos los datos cada vez.
Ventajas de usar argumentos por defecto
- Permiten que las funciones funcionen sin enviar todos los datos necesarios; Python utiliza un valor por defecto si no se envía uno.
- Facilitan la flexibilidad en las funciones, permitiendo cambios simples en valores predefinidos como el IVA (16%).
Funciones con argumentos de longitud variable
Definición y utilidad
- Las funciones con argumentos de longitud variable permiten recibir una cantidad indefinida de valores, lo cual es útil cuando no se conoce cuántos elementos serán pasados.
Ejemplo práctico
- Se define una función llamada
sumarque recibe una lista con n cantidad de números y calcula su total sumando cada elemento.
Comportamiento ante listas variables
- La función puede manejar listas que crecen o disminuyen sin problemas; ejecuta correctamente independientemente del tamaño de la lista.
Promedio con longitud variable
- Otro ejemplo muestra cómo calcular el promedio utilizando una lista sin saber cuántos elementos contiene, demostrando así la versatilidad del manejo dinámico en Python.
¿Cómo funcionan los argumentos de longitud variable en Python?
Introducción a los argumentos de longitud variable
- Se menciona que no se sabe cuántos valores se recibirán, pero la función puede manejarlo sin problemas.
- Se introduce el concepto de argumentos de longitud variable y se hace un llamado a un receso, recordando a los asistentes sobre el formulario de asistencia.
Ejemplo práctico: Contar palabras
- Se explica que las funciones pueden recibir listas como argumentos, permitiendo trabajar con diferentes tipos de datos, incluyendo strings.
- Se presenta una función llamada
contar_palabras, que recibe una lista de textos y cuenta cuántos elementos hay en ella.
Implementación y errores comunes
- La función utiliza un contador para sumar elementos en la lista. Un bucle
foritera sobre cada palabra en la lista.
- Se identifica un error donde el retorno (
return) interrumpe el ciclo del bucle. Esto se corrige eliminando espacios innecesarios.
Concepto clave: Return
- Los argumentos de longitud variable permiten crear funciones flexibles que aceptan múltiples valores sin necesidad de cambiar el código.
- El
returnes crucial ya que finaliza la ejecución de una función y devuelve un valor al lugar donde fue llamada.
Aplicaciones del return en Python
- El
returnpuede devolver tanto valores simples como resultados de operaciones. Es fundamental para guardar resultados en variables.
- Permite que las funciones sean más dinámicas y útiles al manejar información cambiante o desconocida.
Funciones en Python: Conceptos Clave
Funciones y su Ejecución
- La sentencia
returnpermite que un valor sea devuelto por una función, lo que puede ser almacenado y reutilizado posteriormente. Además, detiene la ejecución de la función inmediatamente al ser encontrado.
- El valor devuelto por una función puede integrarse en cálculos más complejos, siendo útil para diversas operaciones.
Ejemplo Completo de Funciones
- Se presenta un bloque de código donde se integran varias funciones para demostrar su interacción y combinación efectiva.
- Se define una función simple llamada "bienvenida" que imprime un mensaje de bienvenida al sistema.
Funciones con Argumentos
- Se introduce la función
saludar, que toma un argumento (nombre) y devuelve un saludo personalizado, como "Hola, Pablo".
- Se crea una función
restaque recibe dos valores (A y B), retornando el resultado de A - B.
Argumentos por Nombre y Valores por Defecto
- Un segundo resultado se obtiene usando argumentos por nombre en la función
resta, permitiendo especificar los valores directamente (por ejemplo, A = 12, B = 15).
- La función
calcular_totalrecibe precio e impuesto como parámetros; retorna el total incluyendo impuestos.
Personalización de Parámetros
- Al llamar a
calcular_total, si se proporciona un valor personalizado para el impuesto, este reemplaza el valor predeterminado definido previamente.
- Si no se proporciona ningún valor personalizado, se utiliza el valor predeterminado establecido en la definición de la función.
Funciones con Longitud Variable
- Se define una nueva función llamada
sumar_numeros, que permite sumar múltiples números mediante argumentos variables.
- Esta función inicializa un total en cero y suma cada número recibido a ese total.
Resumen Final sobre Tipos de Funciones
- Recapitulación sobre las estructuras básicas de funciones: nombre, definición y comandos ejecutables dentro de ellas sin necesidad de argumentos.
- Las funciones pueden tener argumentos obligatorios o opcionales; los usuarios deben enviar estos parámetros correctamente al invocar las funciones.
- Los argumentos pueden ser posicionales o nombrados; esto ayuda a evitar errores si los usuarios no conocen el orden correcto para pasar los parámetros.
Este resumen captura los conceptos fundamentales discutidos sobre las funciones en Python, proporcionando enlaces directos a momentos específicos del video para facilitar su estudio.
Introducción a SQL
¿Qué es SQL?
- SQL es un lenguaje de programación especializado para gestionar y manipular bases de datos relacionales, permitiendo almacenar, consultar, actualizar y eliminar información de manera estructurada.
- Permite trabajar con grandes volúmenes de datos organizados en tablas compuestas por filas y columnas mediante sentencias SQL.
- Es un estándar internacional utilizado por la mayoría de los sistemas gestores de bases de datos como MySQL, PostgreSQL, SQL Server y Oracle.
- Facilita la transformación de datos almacenados en información útil para la toma de decisiones en sistemas computacionales.
Acceso a Herramientas
- Se utilizará un emulador online llamado DB Fit DLE.uk para ejecutar comandos sin necesidad de instalar un sistema gestor localmente.
- Los estudiantes trabajarán con un caso práctico relacionado con las ventas en una tienda llamada Tecnomarket.
Lenguaje DDL y Consultas
Definición del Lenguaje DDL
- El DDL (Data Definition Language o Lenguaje de Definición de Datos) se utiliza para crear, modificar y eliminar la estructura de una base de datos.
- Las cláusulas como FROM, WHERE, GROUP BY son esenciales para obtener, filtrar y organizar los datos dentro de las consultas SQL.
Operadores Lógicos
- Los operadores lógicos AND, OR y NOT permiten combinar condiciones dentro de una consulta para realizar búsquedas más específicas.
Funciones Agregadas
- Las funciones agregadas como AVG(), SUM(), COUNT(), MAX() y MIN() realizan cálculos sobre conjuntos de registros devolviendo resultados numéricos que resumen información.
Creación Estructural en DDL
Comando CREATE TABLE
- El comando CREATE TABLE se usa para definir cómo se guardará la información creando tablas con columnas específicas que contienen tipos definidos (números enteros, texto).
Ejemplo Práctico
- Se creará una tabla "alumnos" con ID como clave primaria (primary key), nombre como VARCHAR(50), y edad como INTEGER.
- También se crearán tablas adicionales: "materias" e "calificaciones", cada una definiendo sus respectivas claves primarias y tipos adecuados.
¿Cómo establecer claves foráneas en bases de datos?
Definición y propósito de las claves foráneas
- Las claves foráneas son utilizadas para enlazar tablas, específicamente con la clave primaria de otra tabla, permitiendo así mantener la integridad referencial.
- La integridad referencial ayuda a evitar duplicidades y asegura que los registros tengan relaciones coherentes entre sí.
Ejecución y errores comunes
- Se menciona un error al referenciar el ID de materia incorrectamente como "ID materias" en lugar de "ID materia".
- El error se debe a que el sistema está ejecutando en tiempo real y almacena en memoria, lo que puede causar problemas si ya se creó la referencia.
Estructura del comando CREATE TABLE
- La estructura básica incluye
CREATE TABLE, el nombre de la tabla, seguido por los tipos de datos y definición de llaves primarias o foráneas.
Inserción de datos en tablas
- El comando
INSERT INTOes fundamental para agregar nuevos registros a una tabla ya creada. Es esencial incluir datos de prueba para verificar el funcionamiento.
- Al usar
INSERT INTO, se especifica el nombre de la tabla seguido por los nombres de los campos entre paréntesis.
Consultas básicas con SELECT
- El comando
SELECTpermite consultar información almacenada en una base de datos. Es crucial para mostrar todos los datos o filtrar información específica.
- Un ejemplo básico es
SELECT * FROM alumnos, donde se seleccionan todos los registros. Se recomienda especificar columnas cuando sea posible.
Uso avanzado del SELECT
- Se pueden aplicar condiciones usando
WHEREpara filtrar resultados, como seleccionar alumnos mayores a 19 años.
- Los operadores lógicos (
AND,OR,NOT) permiten realizar consultas más complejas, como buscar alumnos mayores a 18 años cuyos nombres comiencen con 'A' o 'M'.
Consulta SQL y Funciones de Agregado
Uso de comodines en consultas
- Se explica cómo utilizar el comodín
%para buscar nombres que contengan una letra específica, como 'n', sin importar la cantidad de letras antes o después.
- Se establece una condición donde se busca un nombre que comience con 'A' o 'M' y se verifica si la edad es mayor a 18 años.
Filtrado de calificaciones
- Se presenta una consulta para mostrar las calificaciones menores a siete, indicando que estas representan reprobados.
- Se discuten los operadores lógicos
AND,ORyNOTen el contexto de las consultas SQL.
Funciones de agregado
- Introducción a funciones como
AVG,COUNT,SUM,MAX, yMINpara realizar cálculos sobre conjuntos de datos.
- Ejemplo práctico sobre cómo obtener el promedio de calificaciones por alumno utilizando un alias para simplificar la presentación del resultado.
Agrupación y conteo
- Consulta para contar cuántas calificaciones tiene cada materia, utilizando la función
COUNTjunto con agrupaciones (GROUP BY) adecuadas.
- Detalle sobre cómo unir tablas (JOIN) para relacionar calificaciones con materias mediante sus IDs.
Análisis estadístico por materia
- Consulta que obtiene las calificaciones máxima y mínima por materia, usando alias para claridad en los resultados.
- Explicación sobre cómo agrupar resultados por nombre de materia al calcular máximos y mínimos.
Promedios y ordenamiento
- Presentación de alumnos cuyo promedio sea mayor o igual a 8, utilizando la cláusula
HAVINGtras agrupar los resultados.
- Discusión sobre el uso del comando
ORDER BYpara ordenar los promedios desde el más alto al más bajo entre los alumnos.
Cierre y recordatorio
- Anuncio del receso e invitación a registrar asistencia antes del descanso.
Cierre de la sesión y creación de tablas
Introducción a la sesión
- Se retoma la sesión para finalizar el cierre del día, comenzando con la ejecución de comandos desde PG Admin.
Creación y eliminación de tablas
- Se han creado las tablas necesarias: alumnos, materias y calificaciones. Se utiliza un comando para eliminar datos en cascada.
- Al actualizar, se verifica que no haya tablas registradas antes de proceder a crear las tres mencionadas.
Consultas básicas
- Se realiza una consulta para mostrar todos los alumnos registrados utilizando
SELECT.
- Consulta para obtener nombres y edades de alumnos mayores de 19 años; se identifican a Luis y Carlos como ejemplos.
- Otra consulta busca alumnos cuyos nombres inicien con "A" o "M", mostrando solo aquellos que cumplen esta condición.
Consultas avanzadas sobre calificaciones
Filtrado por calificaciones
- Se ejecuta una consulta para mostrar calificaciones mayores o iguales a siete, utilizando condiciones adecuadas.
Cálculo de promedios
- Para calcular el promedio, se hace un
JOINentre las tablas de calificaciones y alumnos, agrupando por nombre.
- Similarmente, se agrupan las calificaciones por materia para contar cuántas tiene cada una.
Análisis estadístico
- Obtención de calificación máxima y mínima por materia usando funciones agregadas como
MAXyMIN, asegurando el uso correcto del agrupamiento.
Actualización y eliminación de registros
Actualización de datos
- Proceso para actualizar la calificación del alumno Carlos en matemáticas; se utiliza el comando
UPDATEcon condiciones específicas.
Eliminación segura
- Explicación sobre cómo borrar registros usando
DELETE, enfatizando la importancia de establecer condiciones para evitar eliminar todos los datos accidentalmente.
Modificación estructural
- Uso del comando
ALTER TABLEpara agregar un nuevo campo (correo electrónico) a la tabla alumnos.
¿Cómo se manejan las tablas en SQL?
Creación y visualización de datos
- Se ejecuta un comando para mostrar los alumnos, revelando que se ha añadido un nuevo campo: el correo. Sin embargo, este campo está vacío ya que la operación fue reciente.
Eliminación de tablas
- Para eliminar una tabla, se utiliza el comando
draw table calificaciones, lo cual resulta en la eliminación exitosa de la tabla. Al refrescar la vista, se confirma que la tabla "calificaciones" ya no existe.
Comandos básicos de SQL
- Se concluye que los comandos presentados son fundamentales para manejar bases de datos en SQL. La sesión termina con agradecimientos y una invitación a participar en futuras sesiones.