Manipulación Avanzada de Datos con Python y Pandas

Clase 14 de 24Curso de ETL e ingesta de datos con Python

Resumen

¿Cómo aplicar técnicas avanzadas de manipulación de datos en Python?

La manipulación de datos es una habilidad fundamental para cualquier profesional que trabaje con grandes volúmenes de información. Con Python y sus bibliotecas potentes como Pandas, puedes llevar estas técnicas al siguiente nivel. En esta clase, descubrirás cómo aplicar transformaciones avanzadas utilizando funciones personalizadas, pivot tables, y diferentes métodos de 'join'. ¡Sumérgete en este fascinante mundo y descubre el poder de los datos!

¿Cómo leer y analizar múltiples archivos CSV?

Comencemos con una tarea básica pero crucial: leer archivos CSV. Para este ejemplo, trabajaremos con dos archivos CSV: uno con información de empleados y otro con datos de bonificaciones.

La estructura de ambos data frames puede visualizarse de la siguiente manera:

  • Empleados:

  • ID empleado

  • Nombre

  • Departamento

  • Salario

  • Fecha de ingreso

  • Bonificaciones:

  • ID empleado

  • Bonificación

Es esencial recordar que ambos archivos tienen una columna en común: el ID del empleado. Esta columna nos servirá para futuras operaciones de 'join' entre data frames.

import pandas as pd

empleados_df = pd.read_csv('empleados.csv')
bonificaciones_df = pd.read_csv('bonificaciones.csv')

print(empleados_df.head())
print(bonificaciones_df.head())

¿Cómo usar funciones personalizadas con el método apply?

El método apply te permite aplicar funciones personalizadas a las columnas de un data frame. Empezaremos creando una función sencilla para calcular el salario anual multiplicando el salario mensual por doce.

def salario_anual(salario):
    return salario * 12

empleados_df['Salario Anual'] = empleados_df['Salario'].apply(salario_anual)

Un ejemplo más avanzado es calcular la antigüedad de un empleado basándose en la fecha de ingreso. Creamos una función para verificar si un empleado tiene más de cinco años de antigüedad.

from datetime import datetime

def antiguedad_cinco_anos(fecha_ingreso):
    hoy = pd.to_datetime('today')
    antiguedad = (hoy - pd.to_datetime(fecha_ingreso)).days / 365
    return antiguedad > 5

empleados_df['Antigüedad > 5 Años'] = empleados_df['Fecha de ingreso'].apply(antiguedad_cinco_anos)

¿Qué son y cómo usar las tablas pivote (Pivot Tables)?

Las tablas pivote te permiten reorganizar los datos para obtener información agregada. En este contexto, generaremos una tabla que muestre el salario promedio por departamento.

tabla_pivote = empleados_df.pivot_table(values='Salario', index='Departamento', aggfunc='mean')
print(tabla_pivote)

¿Cómo integrar data frames usando Merge y Join?

Finalmente, exploraremos cómo combinar información de múltiples fuentes. Utilizaremos merge para combinar los archivos de empleados y bonificaciones usando el ID de empleado y el método 'left'.

df_merged = pd.merge(empleados_df, bonificaciones_df, on='ID empleado', how='left')

Podemos también configurar índices y realizar 'joins' adicionales usando la columna Departamento para integrar información de ubicaciones.

departamentos = {'Departamento': ['Ventas', 'IT', 'Recursos Humanos'],
                 'Ubicación': ['Madrid', 'Barcelona', 'Valencia']}
df_departamentos = pd.DataFrame(departamentos).set_index('Departamento')

df_combined = empleados_df.set_index('Departamento').join(df_departamentos)

Desafío práctico: ¿Cómo aplicar lo aprendido a un contexto real?

Ahora que entiendes cómo manipular data frames con técnicas avanzadas en Python, te lanzo un desafío. Supón que tienes datos de productos en una tienda. Crea una función que calcule el total de ventas multiplicando cantidad por precio, y otra que clasifique productos como baratos, medios o caros. Aplica el método apply para poner en práctica lo aprendido y comparte tus soluciones.

La manipulación de datos es un mundo con infinitas posibilidades y desafíos. ¡Sigue así, promoviendo y perfeccionando tus habilidades en este viaje extraordinario a través de los datos!