1. Introducción a la agrupación de datos
Principio de la agrupación de datos
En la vida real, frecuentemente agrupamos objetos según ciertas características: libros con libros, verduras con verduras, personas con personas (bueno, ya me entiendes). En programación, esto funciona de manera similar. Agrupar datos nos permite dividir un gran volumen de datos en partes más pequeñas y manejables, para luego analizarlas.
En pandas se usa el método groupby para esto, que permite dividir los datos en grupos y realizar varias operaciones en cada uno de ellos. Por ejemplo, puedes agrupar las ventas por departamentos de una tienda y calcular los ingresos totales en cada uno.
Este es un ejemplo de cómo podría verse:
import pandas as pd
# Creamos un DataFrame con datos de ventas
data = {'Departamento': ['Alimentos', 'Tecnología', 'Alimentos', 'Libros', 'Tecnología'],
'Ingresos': [100, 200, 150, 50, 300]}
df = pd.DataFrame(data)
# Agrupamos los datos por departamentos y calculamos el ingreso total
grupo = df.groupby('Departamento')['Ingresos'].sum()
print(grupo)
Ejemplos de aplicación de la agrupación
La agrupación es especialmente útil cuando necesitas comparar datos entre diferentes categorías. Por ejemplo, si trabajas en recursos humanos y quieres saber el salario promedio en diferentes departamentos de una empresa, o si eres un especialista en marketing y te interesa en qué mes hubo más ventas para cada producto. Estas tareas se simplifican mucho con las capacidades de agrupación en pandas.
2. Cálculo de funciones agregadas
Introducción a las funciones agregadas
Las funciones agregadas son funciones especiales que se aplican a un grupo de datos y devuelven un único valor. Las más comunes son sum (suma), mean (promedio) y count (cantidad de elementos). Estas permiten reducir una gran cantidad de información a métricas más simples y comprensibles.
Uso de funciones agregadas
Ya vimos cómo calcular la suma en el ejemplo anterior. Ahora veamos cómo podemos calcular el promedio y la cantidad de ventas en cada departamento.
# Calculamos el ingreso promedio por departamento
promedio = df.groupby('Departamento')['Ingresos'].mean()
print(promedio)
# Contamos la cantidad de ventas por cada departamento
cantidad = df.groupby('Departamento')['Ingresos'].count()
print(cantidad)
Ejemplos de cálculo de agregados
Supongamos que tienes datos sobre la cantidad de usuarios que visitan un sitio web y quieres entender cuántas personas en promedio visitan el sitio cada día de la semana. Esta es una tarea clásica para la agrupación y el uso de la función mean.
data = {'Día': ['Lun', 'Mar', 'Mié', 'Jue', 'Vie', 'Mié', 'Mar'],
'Visitas': [120, 150, 170, 160, 180, 300, 220]}
df = pd.DataFrame(data)
# Calculamos el número promedio de visitas por día
promedio_visitas = df.groupby('Día')['Visitas'].mean()
print(promedio_visitas)
3. Trabajo práctico
Ejercicio de agrupación de datos y cálculo de agregados
Supongamos que tienes un conjunto de datos sobre ventas. Tu tarea es agruparlos por categorías y calcular las ventas totales, el costo promedio del pedido y la cantidad de pedidos en cada categoría. Esto te ayudará a entender qué categorías de productos generan mayores ganancias y dónde están las posibles "minas de oro".
data = {
'Categoría': ['Electrónica', 'Ropa', 'Electrónica', 'Libros', 'Libros', 'Ropa'],
'Monto_pedido': [250, 100, 150, 200, 500, 300]
}
df = pd.DataFrame(data)
# Calculamos las ventas totales por categoría
suma = df.groupby('Categoría')['Monto_pedido'].sum()
print(suma)
# Calculamos el costo promedio del pedido por categoría
costo_promedio = df.groupby('Categoría')['Monto_pedido'].mean()
print(costo_promedio)
# Contamos la cantidad de pedidos por categoría
cantidad_pedidos = df.groupby('Categoría')['Monto_pedido'].count()
print(cantidad_pedidos)
Discusión de los resultados de la agrupación y análisis de datos
Después de realizar el ejercicio de agrupación de datos y cálculo de agregados, es muy útil analizar los datos obtenidos. Podrías notar, por ejemplo, que la categoría "Libros" tiene el monto total más alto debido a un pedido pequeño pero significativo. O que "Ropa" tiene la mayor cantidad de pedidos, pero el costo promedio del pedido es menor que el de "Electrónica".
Este tipo de análisis puede ayudar a tomar decisiones de negocio fundamentadas, como enfocarte en incrementar el tamaño promedio del pedido en la categoría que tiene el mayor número de pedidos pero un costo promedio menor.
4. Errores y peculiaridades
Al trabajar con agrupaciones, uno de los errores más comunes es olvidar usar los paréntesis al aplicar funciones agregadas. Por ejemplo, escribir df.groupby('Categoría').sum() en lugar de df.groupby('Categoría')['Monto_pedido'].sum(). Además, a veces surgen problemas con los valores faltantes en los datos. Pandas tiene métodos convenientes para manejar valores faltantes, como fillna(), que permite reemplazar valores ausentes con uno especificado para evitar distorsiones en los cálculos.
Aparte de esto, asegúrate de que los tipos de datos sean correctos. A veces, las columnas con números pueden interpretarse como cadenas, y al intentar agregar estos datos surgirán errores.
Si necesitas profundizar en el trabajo con pandas y los métodos de agrupación, consulta la documentación oficial de pandas para un estudio más detallado y ejemplos.
GO TO FULL VERSION