Transformación de datos de países
Clase 10 de 25 • Curso de Fundamentos de ETL con Python y Pentaho
Contenido del curso
Clase 10 de 25 • Curso de Fundamentos de ETL con Python y Pentaho
Contenido del curso
Edwin Uldarico Hernandez Osorio
Alberto Fleitas
Jorge Alain Garcia Chavero
Carlos Eduardo Bracho Rosales
Juan Sebastián Vargas Castañeda
Juan Sebastián Vargas Castañeda
Nicolás Muriel
Jorge Eliécer Cárdenas Cruz
Andres Giraldo Maya
Andres Giraldo Maya
Camilo Granda Gómez
Javier Hugo Noto Enriquez
Cristhian Eduardo Ninanya Cerron
Enrique Alexis Lopez Araujo
Camilo Castañeda
No debería atender a los Warnings que le saltan en pantalla ? al menos leerlo y decir por que en ese caso lo puede ignorar
Estoy de acuerdo
nah
Merge
df_trades_clean = df_trades.merge(df_codes[['clean_code', 'id_code']], how='left', left_on='comm_code', right_on='clean_code')
df_codes solo trae dos columnas):SELECT * FROM df_trades LEFT JOIN df_codes ON df_trades.comm_code = df_codes.clean_code
df_codes.index te retorna una arreglo de los índices actuales del data frame.df_codes['id_code'] = df_codes.index + 1
Crea una nueva columna con estos índices pero +1.
En data warehousing es muy comun la creacion de identificadores unicos, sin embargo en SQL esto es mas complicado que utilizar los indeces de pandas.
Yo recomiendo mucho utilizar surrogate keys, que es pasar una llave natural, o si no hay, pasar una concatenacion de las columnas y convertirlo a un string como llave artificial.
Aqui un poco mas de informacion de esto https://docs.getdbt.com/blog/sql-surrogate-keys
Esto es muy importante cuando estamos haciendo data modeling.
Considero que la forma de generar el código único no es escalable para soluciones donde existen cargas incrementales incluso en dimensiones o dimensiones que se alimentan de dos fuentes diferentes, ¿Cual técnica se puede emplear para generar estos id únicos respetando lo que ya se tiene en las tablas del destino?
Hola, repito a moto de pregunta, se puede hacer el proceso de ETL con SQL fuera de un motor de base de datos? muchas gracias! 🙏?
Hola, tengo una consulta, todo este proceso de transformacion que sigue y hacemos con Python, también se podría hacer con SQL? estando así fuera de un motor de base de datos. saludos, muchas gracias!
No puedo hacer el merge. Se queda cargando infinitamente :(
A fines prácticos, te recomiendo solo cargar 50mil o 100mil columnas de postgres, en total me parece que tiene 12millones de registros, y todo eso se va cargando en la RAM. Con menos registros seguro que las ejecuciones si darán
Buen dato, solo para fines didácticos, importe 10K desde PostgreSQL.
En el contexto de transformación de datos y ETL, los comandos más importantes de la clase se resumen a continuación:
DataFrame: Estructura de datos en pandas que almacena datos en forma de tabla, similar a una hoja de cálculo.
index: Hace referencia al índice de cada fila en el DataFrame. Se utiliza para identificar registros únicos.
astype(): Método que cambia el tipo de datos de una columna, por ejemplo, convertir un código a entero.
merge(): Combina dos DataFrames basándose en columnas comunes, lo que permite relacionar diferentes conjuntos de datos.
left join: Tipo de combinación que incluye todos los registros del DataFrame izquierdo y solo los coincidentes del derecho.
Estos comandos son esenciales para limpiar, transformar y combinar datos en la preparación para análisis o modelado.
En la clase se abordó la transformación de datos de países en un flujo ETL. Se creó un identificador único para un DataFrame y se filtraron columnas relevantes. Se realizó un merge entre el DataFrame de transacciones y los códigos de productos y países, enriqueciendo los datos con información adicional como nombres de países y regiones.