Prepara tus herramientas y conocimientos de Python y MySQL, porque en este proyecto llevaremos a cabo un proceso completo de Extracción, Transformación y Carga (ETL). Utilizaremos como base nuestra base de datos existente llamada "Shakira". Las transformaciones a realizar son únicas y permitirán optimizar y reorganizar los datos de la tabla de actores. Al finalizar, todo lo que transformemos se transferirá a una nueva base de datos, "Shakira ETL". Descubramos los emocionantes pasos que realizaremos a continuación.
¿Cuáles son las transformaciones clave del proyecto?
Filtrado de actores: Identificaremos aquellos actores cuyo nombre empieza con la letra 'a'.
Creación de una columna completa para el nombre: Concatenaremos las columnas first name y last name para formar la columna full name.
Calcular la longitud del nombre: Crearemos namelends, que reflejará la longitud total del nombre.
Conversiones a mayúsculas: Todos los nombres se convertirán a mayúsculas.
Filtrado por longitud del nombre: Mantendremos actores cuyo full name sea mayor de diez caracteres.
Cálculo del año de registro: Determinaremos el año en el cual cada actor se registró.
Agrupación por apellido: Agruparemos los datos por last name y contaremos cuántos actores comparten el mismo apellido.
Indicador de nombre único: Añadiremos una columna que marca si un actor tiene un nombre único.
Estatus del actor: Se agregará un estatus para indicar si el actor tiene más de diez años en la base de datos.
Eliminación de una columna innecesaria: Finalmente, se eliminará la columna last update.
¿Cómo nos conectamos a MySQL con Python?
Para comenzar, debemos garantizar una conexión estable con MySQL. Aquí están los pasos para conectarnos exitosamente:
Importación de librerías necesarias:
MySQL Connector: Para manejar la conexión con MySQL.
Pandas: Para realizar transformaciones de datos.
SQLAlchemy: Para ayudar en la carga de datos.
datetime: Para trabajar con campos de fecha.
import mysql.connectorimport pandas as pd
importsqlalchemyfrom datetime import datetime
Configuración de la conexión:
Se utiliza "localhost" para servidores locales.
Proporciona tus credenciales como usuario y contraseña.
Utilizamos una consulta SQL simple para obtener todos los campos de la tabla de actores.
Transformamos los resultados en un data frame de Pandas para su manipulación.
query ="SELECT * FROM actor"cursor.execute(query)results = cursor.fetchall()columns =[col[0]for col in cursor.description]df_actors = pd.DataFrame(results, columns=columns)
Seguridad de conexiones:
Siempre cierra la conexión cuando no es necesaria para evitar problemas de seguridad.
connection.close()
Ahora que hemos establecido la conexión y extraído los datos iniciales de MySQL usando Python, tenemos la base perfecta para iniciar las transformaciones. Si encontraste algún obstáculo, no dudes en compartirlo y juntos encontraremos la solución. Adelante, queda mucho por explorar y aprender en próximas etapas. ¡Nos vemos en el siguiente reto ETL!