Sesión 3 Análisis de Datos
Bienvenida y Reglas del Curso
Introducción al Módulo 2
- La bienvenida es ofrecida por la Agencia de Transformación Digital y Telecomunicaciones, Infotec, el Tecnológico Nacional de México y el Centro Público de Formación en Inteligencia Artificial.
- Los instructores del módulo son la Dra. Ora Lisbeth Rodríguez Mayagua y Humberto Madín Vega.
- Se enfatiza la importancia de registrar asistencia a través del enlace proporcionado durante las clases síncronas.
Normas de Asistencia
- Si un estudiante no puede asistir a una sesión, debe dejar su nombre en los comentarios de la grabación para que se registre su asistencia.
- Para la evaluación final, los estudiantes tendrán dos intentos disponibles el 17 de enero.
Introducción a Python
¿Por qué elegir Python?
- Python es un lenguaje interpretado, fácil de leer y aprender, diseñado para facilitar la programación.
- Se utiliza en diversas áreas como análisis de datos, inteligencia artificial y desarrollo web.
Características Principales
- Sintaxis simple y legible que permite enfocarse en la lógica más que en complejidades del lenguaje.
- Es multiplataforma; se puede ejecutar en Windows, Linux o Mac OS con una amplia comunidad que apoya su aprendizaje.
Fundamentos del Análisis de Datos con Python
Objetivos del Módulo
- El objetivo es reconocer los fundamentos de programación orientada al análisis de datos mediante principios básicos.
Temas a Tratar
- En esta sesión se abordarán los tipos de datos (2.1) y estructuras de control (2.2).
Tipos de Datos en Python
Definición y Ejemplos
- Un tipo de dato es un valor almacenado en una variable que indica qué información contiene (texto, número, lista).
- Ejemplos incluyen enteros (5), decimales (3.14), cadenas ("Python"), booleanos (true), listas ([1, 2, 3]), tuplas (1, 2, 3) y diccionarios.
Práctica con Colab
Uso Práctico
- Se instruye a los estudiantes sobre cómo utilizar Google Colab para escribir código sin necesidad de instalar Python localmente.
Proceso Inicial
- Los estudiantes deben autenticarse con una cuenta Google para crear un nuevo notebook donde podrán trabajar sus ejemplos.
Introducción a Python y Tipos de Datos
Uso de la Tablet y Almacenamiento
- La tablet se puede utilizar desde el celular con solo un navegador, y los datos se almacenan en Google Drive.
- Una vez completado el ejercicio, se descarga y guarda para uso posterior.
Definición de Datos en Python
- Se definen varios tipos de datos:
int,float,str,bool, listas, tuplas, diccionarios y conjuntos.
- Ejemplo de definición: una variable entera (
int), un decimal (float), texto (str), lógico (bool), lista, tupla (ejemplo: 1, 2, 3) y diccionario (ejemplo: 'A': 1, 'B': 2).
Impresión de Tipos de Datos
- Se utiliza la función
print()junto contype()para mostrar el tipo de cada variable definida.
- Ejemplos incluyen imprimir variables como entero (5), decimal (3.14), texto ("Python"), lógico (True), lista, diccionario y conjunto.
Errores Comunes
- Se menciona un error al definir un diccionario usando corchetes en lugar de llaves; es importante usar la sintaxis correcta para evitar errores.
Tipos Básicos de Datos en Python
Resumen de Tipos Definidos
- Los tipos básicos definidos son: entero (
int), decimal (float), texto (str), lógico (bool), lista, diccionario y conjunto. Estos son fundamentales para trabajar en Python.
Operadores en Python
Operadores de Asignación
- Los operadores permiten asignar o actualizar valores a las variables eficientemente mediante operaciones aritméticas combinadas con asignaciones simples.
- Ejemplos incluyen:
- Asignación simple:
x = 7
- Actualización:
x += 2, que equivale ax = x + 2.
Operaciones Matemáticas
- Se explican operaciones como suma, resta, multiplicación y módulo utilizando ejemplos prácticos dentro del entorno Colab.
Operadores de Asignación y Aritméticos en Python
Introducción a los Operadores de Asignación
- Se establece que x = 7 y se realiza la operación x + 2 , cuyo resultado debe ser 9. Esto ilustra cómo se puede sintetizar una operación.
- Se menciona que si x = -2 , el resultado al restar dos de nueve es siete, mostrando la relación entre las operaciones aritméticas y su representación en código.
- Se introduce el concepto de módulo, donde x mod 2 resulta en uno, ejemplificando el uso del operador módulo.
Resultados de Operaciones
- Al ejecutar los operadores de asignación, no hay errores y se muestran los resultados esperados, confirmando la correcta implementación del código.
Operadores Aritméticos
- Los operadores aritméticos son símbolos utilizados para realizar operaciones matemáticas comunes como suma, resta, multiplicación y división en Python.
- Ejemplos prácticos incluyen:
- Suma: x + y = 13
- Resta: x - y = 7
- Multiplicación: x * y = 30
Más Ejemplos de Operaciones
- La división entera da como resultado tres (10 / 3), mientras que la potencia (10^3) resulta en mil. Estos ejemplos demuestran cómo aplicar diferentes operadores aritméticos en Python.
Operadores Relacionales
Comparaciones Básicas
- Los operadores relacionales permiten comparar dos valores, devolviendo un valor booleano (true o false). Son esenciales para tomar decisiones dentro del código.
Ejemplos Prácticos
- Con valores definidos como x = 4 e y = 6:
- Comparaciones:
- Si x == y, retorna false.
- Si x != y, retorna true.
- Si x < y, retorna true; si es mayor o igual, retorna false.
Implementación en Código
- Se sugiere implementar estos operadores relacionales en un entorno práctico (Colab), destacando su utilidad para evaluar condiciones dentro del flujo del programa.
Operadores Relacionales y Lógicos en Python
Operadores Relacionales
- Se presentan los operadores relacionales con ejemplos de comparación entre dos variables:
x = 4yy = 6.
- Comparaciones realizadas:
- Igualdad (
==) es falsa.
- Diferente (
!=) es verdadera.
- Mayor que (
>) es falsa.
- Menor que (
<) es verdadera.
- Mayor o igual (
>=) es falsa.
- Menor o igual (
<=) se evalúa como no especificado.
Uso de Operadores Relacionales
- Los operadores relacionales son útiles al implementar estructuras de control como
ifywhile, permitiendo la comparación de valores para tomar decisiones en el código.
Operadores Lógicos
- Introducción a los operadores lógicos, que combinan o evalúan condiciones booleanas (true/false).
- Ejemplo del operador AND:
- Ambos valores deben ser verdaderos para retornar true; si uno es falso, retorna false.
- Ejemplo del operador OR:
- Retorna true si al menos uno de los valores es verdadero; solo retorna false si ambos son falsos.
Negación con el Operador NOT
- El operador NOT invierte el valor booleano: convierte true en false y viceversa. Es fundamental para evaluar condiciones opuestas.
Estructuras de Control en Python
Estructura IF
- La estructura
ifpermite ejecutar un bloque de código solo cuando se cumple una condición específica, evaluando si esta condición es verdadera o falsa.
- Si la condición dentro del if resulta ser verdadera, se ejecuta el código correspondiente; si no, se omite y continúa con el flujo normal del programa.
Aplicaciones del IF
- Se utiliza principalmente para la toma de decisiones dentro del programa, validación de datos y ejecución condicional de acciones basadas en las evaluaciones realizadas.
Registro de Asistencia
- Se solicita a los participantes registrar su asistencia mediante un código QR proporcionado durante la sesión. Esto asegura un control adecuado sobre la participación en el curso.
Pausa Breve
- Se ofrece un breve descanso para que los participantes tomen aire y se preparen para continuar con las estructuras de control después del receso.
Registro de Asistencia y Estructura If
Importancia del Registro
- Se solicita a los participantes registrar su asistencia mediante un código QR, esencial para el control de asistencias en el curso propedéutico.
- El enlace para el registro también está disponible en la descripción del video.
Introducción a la Estructura If
- Se introduce la estructura
if, que permite ejecutar un bloque de código solo si se cumple una condición específica.
- Se menciona que se procederá a realizar ejemplos prácticos utilizando Google Colab.
Ejemplo Básico de If
- Se establece una variable
aigual a 4 ybigual a 2; sibes diferente de 0, se procede con una división.
- Un ejemplo adicional muestra cómo verificar si una edad es mayor o igual a 18, imprimiendo "es mayor de edad" si se cumple la condición.
Condiciones No Cumplidas
- Si no se cumple la condición (por ejemplo, ingresar un número menor que 18), no se ejecuta ningún fragmento de código alternativo.
- Se enfatiza que es importante tener bloques de código para manejar ambas situaciones: cuando la condición es verdadera y cuando no lo es.
Estructuras Complejas: If Else
Uso del If Else
- La estructura
if elsepermite ejecutar diferentes bloques de código dependiendo de si la condición evaluada es verdadera o falsa.
- Un ejemplo muestra cómo verificar si una variable
xes igual a 5 e imprimir mensajes correspondientes según el resultado.
Implementación Práctica
- En un caso práctico, al evaluar edades, se imprime "menor de edad" si no se cumple la condición inicial.
- También se discute cómo manejar números negativos usando esta estructura condicional.
Múltiples Condiciones con Else If
Evaluación Secuencial
- Se explica cómo encadenar múltiples condiciones usando
else if, permitiendo evaluar varias condiciones en orden hasta encontrar una verdadera.
- Un ejemplo práctico ilustra cómo establecer múltiples comparaciones para determinar el valor exacto de una variable.
Estructuras de Control en Programación
Condicionales y Ejemplos Prácticos
- Se explica cómo se ejecuta un bloque de código basado en condiciones específicas, utilizando la estructura
if.
- Se presenta un ejemplo donde una calificación igual a 10 imprime "Excelente", mientras que otras calificaciones son evaluadas con diferentes mensajes.
- Se introduce el uso de
else ifpara manejar múltiples condiciones, como calificaciones de 9 y 7, asignando mensajes correspondientes.
- Se demuestra cómo las condiciones se evalúan secuencialmente, mostrando resultados específicos según la calificación ingresada.
Estructura del Bucle For
- Se inicia la discusión sobre bucles, comenzando con el bucle
for, que permite repetir bloques de código a través de secuencias como listas o rangos.
- El bucle
foritera sobre elementos y su estructura básica es:for variable in secuencia:, permitiendo ejecutar instrucciones repetidamente.
- Se menciona que el bucle
fores útil para recorrer listas y automatizar tareas repetitivas, facilitando el procesamiento de datos.
Ejemplos del Bucle For
- Un ejemplo práctico muestra cómo imprimir números del 0 al 5 usando un rango dentro del bucle
for.
- Otro ejemplo utiliza una lista de materias para demostrar cómo iterar sobre elementos y mostrar información específica.
Introducción al Bucle While
- Se presenta el bucle
while, que repite un bloque de código mientras una condición sea verdadera.
- Un ejemplo ilustra cómo decrementar una variable hasta llegar a cero, mostrando la importancia del control en ciclos repetitivos.
Comparación entre For y While
- A diferencia del bucle
for, elwhileno tiene un número predefinido de repeticiones; depende completamente de si la condición se cumple o no.
- El uso del bucle
whilees ideal cuando no se conoce cuántas veces debe ejecutarse un bloque específico, siendo útil en validaciones e interacciones.
Estructuras de Control en Programación
Ciclo While y su Funcionamiento
- Se describe el funcionamiento del ciclo
while, donde se verifica si un número es mayor que 0. Si la condición se cumple, se imprime el número y se le resta uno.
- Cuando el número llega a cero, ya no cumple la condición del ciclo, lo que provoca que este se rompa.
- Se menciona la posibilidad de agregar un
elseal ciclowhile, que indica cuando el ciclo ha terminado.
Iterables e Iteradores
- Se introduce el concepto de iterables e iteradores: un iterable es un objeto que puede recorrerse elemento por elemento, mientras que un iterador realiza ese recorrido.
- Los iterables permiten recorrer estructuras como listas o cadenas, facilitando la obtención de elementos uno a uno mediante ciclos como
for.
- Ejemplos prácticos muestran cómo usar
forpara recorrer listas y cadenas, imprimiendo cada elemento individualmente.
For Anidado
- Se explica qué es un bucle
foranidado: un bucle dentro de otro utilizado para repetir acciones en múltiples niveles de interacción.
- El bucle externo controla la primera acción y el interno ejecuta completamente por cada vuelta del externo; útil para trabajar con listas dentro de listas o matrices.
Estructura While Else y While Anidado
- La estructura
while elsepermite ejecutar un bloque solo cuando el ciclo termina sin interrupciones.
- Un
while anidadoimplica tener un ciclo dentro de otro, usado para procesos dependientes entre sí o para trabajar con tablas y matrices.
Estructuras de Control en Python
Introducción a las Estructuras de Control
- Se presenta el concepto de estructuras de control, comenzando con un ejemplo práctico que incluye un bucle
whileanidado.
Ejemplo Práctico con Bucles Anidados
- Se define una variable
iinicializada en 0 y se establece una condición para queisea menor que 3. Dentro del bucle, se introduce otra variablej.
- Al ejecutar el código, se observa cómo la variable
jcambia en cada iteración del bucle interno mientrasiincrementa.
- El proceso se repite hasta que ambas variables alcanzan sus límites establecidos, mostrando los valores correspondientes.
Integración de Conceptos Aprendidos
- Se propone un nuevo ejemplo integrador donde se aplican todos los conceptos aprendidos hasta ahora, incluyendo tipos de datos y operadores.
- Se mencionan diferentes tipos de operadores: aritméticos, relacionales y lógicos, así como estructuras condicionales (
if,else) y bucles (for,while).
Definición de Variables y Tipos de Datos
Creación del Ejemplo Integrador
- Se inicia la creación de un programa que simula una tienda llamada "tienda X", definiendo varios tipos de datos como cadenas (strings), booleanos (bool), flotantes (float), tuplas y listas.
Detalles sobre Ventas y Metas
- La meta diaria se establece en 100 pesos utilizando un tipo float. Además, se definen los días laborales como una tupla.
- Las ventas semanales son representadas como una lista dentro de listas, permitiendo registrar múltiples transacciones.
Estructura del Diccionario
- La información sobre la tienda se organiza en un diccionario que incluye el nombre, la meta diaria y otros detalles relevantes.
Impresión y Visualización de Datos
Impresión Final del Ejemplo
- Se imprime la información recopilada sobre la tienda junto con las categorías disponibles para su venta. Esto permite visualizar claramente los datos estructurados.
Receso e Interacción Posterior
Pausa Programada
- Se anuncia un receso breve antes de continuar con el desarrollo del ejemplo integrador. Los participantes son recordados sobre el registro de asistencia.
Operadores Aritméticos en Python
Cálculo Total Semanal
- Al regresar del receso, se comienza a trabajar con operadores aritméticos para calcular el total semanal basado en las ventas diarias registradas.
Evaluación Metas Diarias
- Se implementa lógica condicional (
if) para evaluar si las metas diarias han sido alcanzadas basándose en los totales calculados.
Evaluación de Metas y Ventas Diarias
Proceso de Evaluación de Ventas
- Se inicia la evaluación de metas diarias, donde se revisan los totales por día. Si no hay ventas, se indica que no se han alcanzado las metas.
- Si el total diario supera la meta establecida (100 pesos), se considera que la meta ha sido alcanzada; en caso contrario, se reporta como no alcanzada.
- Se implementa un bucle anidado para determinar la venta máxima registrada durante la semana, actualizando el registro si una nueva venta supera el máximo anterior.
Iteración y Presentación de Resultados
- Se utiliza un iterador para mostrar los días trabajados y sus respectivas ventas totales. Solo se muestran dos días específicos en esta etapa.
- A través de un bucle
while, se presentan los días junto con sus índices y las ventas totales correspondientes.
Detección de Días Sin Ventas
- Se aplica un
while elsepara identificar días sin ventas. Si no hay ventas registradas, se imprime un mensaje indicando que no hubo actividad comercial ese día.
- La detección de días sin ventas es crucial para entender el rendimiento general del negocio; si todos los días tuvieron ventas, esto también es reportado.
Resumen Final y Descarga
- Al final del proceso, se presenta información sobre las categorías vendidas (frutas, snacks y bebidas), así como el total evaluado por día.
- Se concluye que algunas metas no fueron alcanzadas durante varios días de la semana; solo el viernes fue exitoso según los datos analizados.
- El archivo puede ser guardado o descargado con comentarios adicionales para su revisión posterior. La sesión concluye agradeciendo a los participantes e invitándolos a continuar en la próxima reunión.