Sesión 3 Análisis de Datos

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 con type() 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 a x = 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 = 4 y y = 6.
  • Comparaciones realizadas:
  • Igualdad (==) es falsa.
  • Diferente (!=) es verdadera.
  • Mayor que (>) es falsa.
  • Menor que (&lt;) es verdadera.
  • Mayor o igual (>=) es falsa.
  • Menor o igual (&lt;=) se evalúa como no especificado.

Uso de Operadores Relacionales

  • Los operadores relacionales son útiles al implementar estructuras de control como if y while, 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 if permite 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 a igual a 4 y b igual a 2; si b es 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 else permite 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 x es 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 if para 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 for itera sobre elementos y su estructura básica es: for variable in secuencia:, permitiendo ejecutar instrucciones repetidamente.
  • Se menciona que el bucle for es ú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, el while no tiene un número predefinido de repeticiones; depende completamente de si la condición se cumple o no.
  • El uso del bucle while es 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 else al ciclo while, 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 for para recorrer listas y cadenas, imprimiendo cada elemento individualmente.

For Anidado

  • Se explica qué es un bucle for anidado: 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 else permite ejecutar un bloque solo cuando el ciclo termina sin interrupciones.
  • Un while anidado implica 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 while anidado.

Ejemplo Práctico con Bucles Anidados

  • Se define una variable i inicializada en 0 y se establece una condición para que i sea menor que 3. Dentro del bucle, se introduce otra variable j.
  • Al ejecutar el código, se observa cómo la variable j cambia en cada iteración del bucle interno mientras i incrementa.
  • 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 else para 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.
Video description

Sigue la sesión 3 del propedéutico de Análisis de Datos. Link del pase de lista: https://www.epc.gob.mx/cpfia-asistencia-analisis-de-datos/ El folio que solicita para el registro de asistencia es opcional (se puede dejar en blanco) para finalizar el registro de asistencia. #TecNM #INFOTEC