PRACTICO 1#

Identificación y Recolección de Datos

El Practico 1 debe ser enviado por PEDCO de la asignatura, en la sección correspondiente. Curso EPA - PEDCO


ParteI: Datos estructurados#

  1. Abrir un notebook nuevo y ponerle de nombre Practico1_{mi_apellido}.ipynb.

  2. Crear un diccionario denominado db_config de la siguiente forma:

    1. Pedir por consola el usuario, la clave y el nombre de la DB a la que desea acceder.

    2. Utilizar los valores ingresados para crear el diccionario

  3. Dentro de un try-except conectarse a MariaDB e imprimir un mensaje positivo en caso de éxito (en el try) y un error en caso contrario (except).

  4. Dentro de la conexión exitosa, solicitar ahora el nombre de la tabla a consultar y realizar:

    1. Hacer una consulta simple con un seleccionar todos los atributos de la tabla ingresada

    2. Listar la tupla 2 y 3

    3. Probar ingresar una tabla inexistente, qué sucede?

    4. Cierre los cursores/conexiones creadas

  5. Vamos a probar el funcionamiento de un objeto cursor. Crear una nueva celda que se conecte a baseSupermercado y luego:

    1. Hacer una consulta SQL que seleccione todos los empleados de Roca y Allen.

    2. Ejecutar la consulta con el comando cursor.execute(...)

    3. Obtener las tuplas del resultado todas juntas con cursor.fetchall().

      1. De qué tipo es el resultado obtenido?

      2. Recorrer el resultado y listar solo el nombre de los empleados. Se debe listar de la forma: ‘El nombre del empleado es nombre_empleado’.

      3. Puedo seguir utilizando el cursor definido? Qué sucede si quiero volver a realizar un cursor.fetchall() o cursor.fetchone().

    4. Volver a ejecutar la misma consulta (cursor.execute(...)) y recuperar todos los datos utilizando cursor.fetchone().

      1. Se debe listar de la forma: ‘El nombre del empleado es nombre_empleado y su ciudad es nombre_ciudad’.

      2. Ahora listar solo los primeros 3 empleados de la misma forma, pero numerada cada fila con 0, 1 y 2. Se debe usar un iterador de 1 a 3. Qué sucede si recorro solo esos 3 y quiero cerrar el cursor?

    5. Volver a ejecutar la misma consulta pero recuperar las cuatro primeras tuplas con cursor.fetchmany().

      1. Se debe listar de la forma: ‘El nombre del empleado es nombre_empleado y su domicilio es domicilio’.

  6. En una nueva celda poner el comando print(dir(cursor)). Qué lista?

    1. Elegir dos de los métodos listados. Probarlos y describir su funcionamiento.

  7. Investigar y describir el uso del parámetro buffered=True en la creación de un cursor. De la forma cursor = conexion.cursor(buffered=True).

  8. Investigar algún método que permita recuperar el resultado de una consulta como una lista de tipo dictionary y no como una lista de tuplas. Probarlo y mostrar su funcionamiento.

  9. Guardar en un dataframe el resultado de la consulta obtenida en 8 y otro del resultado de la consulta obtenida en 4. Listar ambas.

ParteII: Dataframes y Conversion de Tipos#

  1. Crear un dataframe llamado ventas_df que posea lo siguiente (Sugerencia, cree series de datos y luego uselos para crear el dataframe:

# les doy los datos para copiar y pegar
#ojo esto hay que transformarlo
numeroFactura=[1001, 1002, None, 1004, "XYZ", 1006], 
fechaVenta = ["2025-07-15 10:30", "2025-07-15 11:00", None, "2025-07-17 14:45", "15-07-2025 18:00", 
        "2025-17-01 14:00"],
nombreProducto = ["Camiseta", None, "Zapatillas", "Gorra", "Pantalón", "Medias"], 
cantidadComprada =  [2, "tres", 1, 3, "ocho", "8"],  
precioUnitario =  [4500.0, 8500.0, "doce mil", 3000.0, None, 15000.00], 
pagoCash =  [True, "No", False, True, "Si", True]  
  1. Verifique y liste los tipos de datos de cada columna y del ventas_df completo. Qué puede decir de los tipos devueltos?

  2. Transforme la columna numeroFactura a Int64. Puede transformalo a int o int64?

  3. Transforme la columna fechaVenta a datetime64[ns].

  4. Transforme la columna nombreProducto a string.

  5. Transforme la columna cantidadComprada a Int16.

  6. Transforme la columna precioUnitario a float.

  7. Transforme la columna pagoCash a bool. Explicar el resultado, cómo hizo la transformación? Qué sucede si lo queremos pasar al tipo boolean?

  8. Verifique y liste los tipos de datos resultantes de ventas_df.

  9. Usando .loc[] e iloc[] según crea más conveniente. Si es posible mostrar cada ejercicio con ambos métodos:

    1. Seleccione la columna fechaVenta.

    2. Seleccione la segunda fila.

    3. Seleccione las filas 3 y 4.

    4. Seleccione los productos que se pagaron al contado.

    5. Seleccione las facturas que vendieron más de 3 productos. Listar solo el nombreProducto y precioUnitario.

  10. Hacer una funcion genérica, llamada convertirDatos(columna,tipodedato) que reciba una columna de tipo Series y el nombre del tipo de dato a transformar (int, float, str, fechahora, bool) y la transforme al tipo de dato solicitado.

  11. Probar la función con ventas_df.

ParteIII: Datos semi-estructurados#

  1. Acceder a la url Empleados e inspeccionar su HTML desde el navegador.

  2. Guardar en una lista todas las etiquetas div y analizar su contenido.

  3. Extraer los valores para cada una de esas columnas (atributos) y almacenarlas.

  4. Determinar (lo puede hacer de forma manual) que el nombre y orden de las columnas es: legajo, nombre, apellido, domicilio, ciudad, sucursal e imagen (el enlace a la imagen).

  5. Crear un nuevo dataframe que contenga las columnas y los datos. Mostrar el contenido.

ParteIV: Para los VALIENTES!#

Parte IVa): Uso de Dataframes#

  1. Bajar el archivo girasol-serie-1969-2019.csv de aquí y bajarlo a la máquina local a una carpeta llamada archivos_datasets.

  2. Crear un dataframe a partir del .csv local.

  3. Listar los nombres de las columnas.

  4. Listar el índice creado por pandas. ¿En cuanto comienza y en cuanto termina?

  5. Listar sólo los tipos de datos de cada columna.

  6. ¿Puede ver algo raro con la respuesta? ¿Qué son los tipos “object”?

  7. Listar las primeras 20 filas para ver como son los datos

  8. Listar las primeras 20 filas, pero solo de las dos últimas columnas. Debe hacerlo en forma manual, nombrando las columnas

  9. Utilice en 4 formas diferentes el iloc y loc.

  10. Convierta las columnas a los tipos de datos correctos.

Parte IVb): Uso de datos semiestructurados#

  1. Acceder a la url Libros e inspeccionar su HTML desde el navegador.

  2. Recuperar y listar los primeros 1000 caracteres de la url.

  3. En base a los productos listados en las primeros 20 resultados, armar una dataframe que contenga: nombre del libro, url de la imagen asociada, el precio y si esta disponible o no.