You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

2 Días
8 Hrs
37 Min
28 Seg

Transformación

8/25
Resources

What considerations are important for data transformation in an ETL process?

In the ETL (Extract, Transform and Load) process, data transformation is a crucial and intractable step. Before venturing into the code, it is vital to consider certain aspects that will allow us to make the transformation a success. Be sure to establish a final structure for the data you want to obtain, know how to relate the various data sources, and decide how to handle duplicates, missing data, and aggregations. We will break down each of these considerations below.

What is the final structure of the data?

When starting the ETL process, it is essential to define how the data should look at its final destination or target. This planning will help to select the necessary tools and libraries to shape the desired structure. We must have a clear goal from the beginning; this will help avoid complications later on, and maximize efficiency on the way to the desired result.

How to relate the different data sources?

In many projects, we work with data from multiple sources. For example, we may have a country code and a product code, which allow us to establish connections and relationships between the different sources. Without a clear plan for these relationships, it will be crucial to perform an exploratory data analysis to identify how to effectively interconnect the data.

How to handle normalization?

Normalization in the database context involves organizing data efficiently to avoid redundancies and improve access. We must decide what level of normalization is required when reaching the target, carefully evaluating how data, such as that in a transaction database, should be related to other data sets.

What to do with duplicates?

Handling duplicates is a common practice in data transformation. It is important to plan what to do if duplicate records or columns are found. Knowing how to handle these situations will help maintain the integrity and veracity of the data, avoiding errors that may impair the final analysis.

How to deal with missing data?

Missing data are common in any transformation process. It may happen that a crucial piece of data, such as a country code, is missing. It is essential to decide in advance how these cases will be handled: should the missing data be removed or replaced by some other information? Having a strategy in advance will avoid complications during the transformation.

How to make effective aggregations?

Aggregations are key to create more detailed and enriched information. Through operations such as summations, maximums, minimums or averages, we can synthesize complex information and add value to our analysis. The use of tools such as group by in SQL or pandas will facilitate this process, increasing the clarity and usefulness of the transformed data.

The above considerations are fundamental to ensure a successful data transformation in an ETL process. By having a clear and strategic vision, we not only optimize resources, but also enhance the quality of the information we obtain, thus achieving a final result of high value. Go ahead, and keep exploring the vast world of data transformation!

Contributions 3

Questions 1

Sort by:

Want to see more contributions, questions and answers from the community?

8. Transformación

  • Estructura final: ¿Con qué estructura requiero los datos compatibles con el target?
  • Relaciones
  • Normalización: normalizar los datos para lograr consistencia a lo largo del flujo de datos
  • Duplicados: con qué estructura requiero los datos compatibles con el target
  • Datos faltantes: qué ocurre con los datos faltantes de mi data
  • Agregaciones: debo agrupar los datos por alguna característica y buscar agregaciones como suma, promedio, máximo y demas.

Qué onda👋 . Ahí les van mis apuntes, que en realidad son una paráfrasis (si digo burradas ténganme paciencia auxilio estoy aprendiendo🦖):

Hay algunas cosas que tenemos que considerar a la hora de comenzar el proceso de transformación de datos:

Estructura final:

En función de las necesidades del proyecto, definir el shape final de cómo deberían verse los datos. Y cargarlos al target

Relaciones:

Generar una hipótesis de cuáles podrían ser las relaciones que reflejen mejor el resultado que queremos obtener.

  • Para evitar sesgos lo mejor es comparar esta hipótesis en un escenario en donde su resultado sería irrelevante.

Si la segunda hipótesis se confirma, lo mejor será cambiar las relaciones y continuar con el análisis exploratorio.

Normalización:

Decidir qué estructura de relación a nivel de bases de datos voy a llevar a cabo

  • se hace al normalizar los datos (1FN,2FN,…) para lograr consistencia a lo largo del flujo de datos

Encontrar las relaciones conceptuales (no numéricas / estadísticas) entre las columnas de cada una de las tablas

Duplicados :

Considerar qué hacer con ellos🤔. Para ello es importante saber el contexto de los datos.

  • Es decir, si es relevante y tenga sentido su existencia, tal que aporten información a los resultados, dejarlos en paz. Si son simplemente elementos por error, lo mejor sería ignorarlos en el análisis exploratorio

🚫Si simplemente los borramos porque vemos dos iguales, podríamos estar sesgando los resultados. Igualmente si es necesario hacerlo y no borrarlos

Datos faltantes:

Igual que con los duplicados. Considerar su tratamiento e imputación dependiendo del contexto del cuál fueron extraídos.

  • En otras palabras: investigar la razón de la existencia de ese faltante
  • otro aspecto a considerar es que a veces existen datos faltantes que no se observan de manera explícita.
    • La razón de esto es porque fueron llenados con un valor (numérico / str) que es reconocible por pandas(ejemplo: columna edad= 99999). Son un poco más difíciles de encontrar, porque están enmascarados, haciéndose pasar por datos normales cuando en realidad son datos nulos impostores.

Ejemplo: en un dataset con información de salud de los pacientes, si existe una columna “fumador”, ó “sobrepeso” la existencia de un faltante en esta columna nos genera al menos dos hipótesis del paciente en cuestión: 1: no existe tal información del paciente, 2: El paciente no es fumador, y simplemente la tabla está hecha incorrectamente (o falta normalizarse)

Agregaciones:

Lo que dijo el profe🍻

En el contexto de \*\*ETL (Extract, Transform, Load)\*\*, la \*\*Transformación\*\* es la etapa intermedia del proceso. Su propósito principal es convertir los datos extraídos desde las fuentes en un formato adecuado para ser almacenados y utilizados en el sistema de destino, como un Data Warehouse. \### Principales tareas en la Transformación: 1\. \*\*Limpieza de datos\*\*: \- Eliminar duplicados. \- Gestionar valores faltantes. \- Corregir errores en los datos. 2\. \*\*Estandarización\*\*: \- Asegurar que los datos tienen el mismo formato y estructura. \- Por ejemplo, unificar formatos de fechas o convertir unidades. 3\. \*\*Enriquecimiento de datos\*\*: \- Combinar datos de múltiples fuentes para agregar más contexto o información útil. 4\. \*\*Cálculos y derivaciones\*\*: \- Crear nuevas columnas o métricas a partir de los datos existentes, como calcular ingresos netos o márgenes de ganancia. 5\. \*\*Filtrado\*\*: \- Seleccionar solo los datos relevantes o necesarios para la aplicación objetivo. 6\. \*\*Validación\*\*: \- Verificar que los datos transformados cumplen con las reglas de negocio y estándares requeridos. 7\. \*\*Agrupación y agregación\*\*: \- Resumir datos, como calcular promedios, totales, o conteos por categorías. \### Ejemplo en Python con Pandas: Supongamos que extraemos datos de ventas de un archivo CSV y necesitamos realizar transformaciones básicas. ```python import pandas as pd \# Cargar datos data = pd.read\_csv("ventas.csv") \# Limpieza: Eliminar duplicados data = data.drop\_duplicates() \# Estandarización: Convertir fechas al mismo formato data\['fecha'] = pd.to\_datetime(data\['fecha'], format='%Y-%m-%d') \# Enriquecimiento: Calcular total de ventas data\['total\_ventas'] = data\['precio\_unitario'] \* data\['cantidad'] \# Filtrar: Seleccionar datos relevantes data = data\[data\['total\_ventas'] > 1000] print(data.head()) ``` En este ejemplo, se realizan tareas comunes de transformación antes de cargar los datos transformados en un destino. La transformación es crucial porque asegura que los datos sean consistentes, precisos y útiles para el análisis.