Ejercicio 13: Agrupación y Transformaciones en Pandas con el Dataset Diamonds
Este ejercicio está diseñado para que los estudiantes practiquen operaciones avanzadas de Pandas, incluyendo el uso de funciones como groupby, aggregation, transformation, apply, filtrado flexible y mapping. Se trabajará con el dataset diamonds de Seaborn, explorando diferentes técnicas de manipulación y análisis de datos en una sola línea de código.
Objetivos
- Practicar operaciones avanzadas de Pandas.
- Aplicar técnicas de agrupación, transformación y cálculo personalizado.
- Utilizar funciones avanzadas de Pandas en una sola línea de código.
Entrada de Datos
carat: Peso del diamantecut: Calidad del corte (Fair,Good,Very Good,Premium,Ideal)color: Clasificación del color (DaJ, dondeDes el mejor)clarity: Nivel de claridad (IF,VVS1,VVS2,VS1,VS2,SI1,SI2,I1)depth: Profundidad porcentualtable: Ancho de la parte superior del diamanteprice: Precio en dólaresx, y, z: Dimensiones del diamante
Parte A: Carga y Exploración del Dataset
Tareas
- Cargar el dataset desde
seaborny visualizar sus primeras filas. - Obtener un resumen estadístico con
.describe(). - Verificar valores nulos y contar datos por categoría (
cut,color,clarity).
Código Base
import seaborn as sns
import pandas as pd
# Cargar el dataset
diamonds = sns.load_dataset('diamonds')
# TODO: Implementar
Parte B: Agrupaciones y Cálculos Avanzados con One-Liners
Tareas
- Calcular la media de
priceagrupada porcutusandogroupbyymean(). - Obtener el precio máximo de cada combinación de
cutycolor. - Contar cuántos diamantes hay en cada grupo de
clarity. - Calcular la proporción de cada
cutsobre el total de diamantes con.transform(). - Obtener el precio promedio por
cut, pero solo si el grupo tiene más de 5000 observaciones. - Aplicar una transformación para escalar los valores de
pricedentro de cadacolorusandolambda. - Agregar múltiples estadísticas (
min,max,mean) depriceagrupadas porcolor. - Filtrar solo los grupos donde la media de
carates mayor a 1. - Crear una nueva columna
price_per_caraty agrupar su media porcut. - Aplicar
map()para convertircuten un puntaje numérico (Fair = 1,Good = 2, etc.).
Código Base
# TODO: Implementar
Parte C: Análisis de Transformaciones y Aplicaciones Flexibles
Tareas
- Aplicar una función personalizada con
apply()para calcular una métrica no estándar porcut. - Usar
filter()para dejar solo los grupos decolorcon precio promedio mayor a $4000. - Aplicar una transformación con
applymap()para redondear todos los valores numéricos a 2 decimales. - Usar
map()para crear una nueva columna indicando si elcarates alto (>=1) o bajo (<1). - Generar una tabla pivote con
pivot_table()para compararpriceporcutyclarity.
Código Base
# TODO: Implementar
Parte D: Visualización de Resultados
Tareas
- Crear un
barplotconseabornpara mostrar el precio promedio porcut. - Hacer un
boxplotdel precio segúnclaritypara detectar outliers. - Graficar la relación entre
caratypricecon unscatterplot. - Generar un gráfico de calor (
heatmap) de la matriz de correlación entre variables numéricas.
Código Base
import matplotlib.pyplot as plt
# TODO: Implementar
Entrega Esperada
- Código limpio y estructurado resolviendo cada consigna en una sola línea de código.
- Tablas con estadísticas calculadas correctamente.
- Visualizaciones con
seabornpara analizar los datos gráficamente. - Reflexiones sobre el uso de técnicas avanzadas de Pandas en análisis de datos.