Ejercicio 12: Agregaciones y Análisis

En este ejercicio, se espera que los estudiantes apliquen funciones de agregación utilizando la biblioteca Pandas para extraer insights significativos de un conjunto de datos relacionado con especies de árboles en diferentes entornos. El objetivo es desarrollar habilidades en el uso de funciones de agrupamiento y agregación para realizar análisis descriptivos y comparativos.

Objetivos

  • Calcular la altura promedio de cada especie de árbol en parques y veredas.
  • Identificar qué especie de árbol tiene la mayor inclinación promedio.
  • Crear una tabla pivot que compare las alturas de árboles en parques versus veredas.
  • Graficar la distribución de alturas de los Jacarandás.

Entrada de Datos

  • Un DataFrame de Pandas que contiene información sobre árboles, con las siguientes columnas:
    • especie: Nombre de la especie del árbol.
    • entorno: Indica si el árbol está en un parque o en una vereda.
    • altura: Altura del árbol en metros.
    • inclinacion: Inclinación del árbol en grados.

Código Base

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# Ejemplo de creación de DataFrame
datos = {
    'especie': ['Jacarandá', 'Eucalipto', 'Jacarandá', 'Pino', 'Eucalipto'],
    'entorno': ['parque', 'vereda', 'vereda', 'parque', 'parque'],
    'altura': [10, 20, 15, 25, 30],
    'inclinacion': [5, 10, 3, 7, 2]
}

df = pd.DataFrame(datos)

# TODO: Implementar

Tareas

  1. Calcular la altura promedio de cada especie de árbol en parques y veredas.

    Utilizar la función groupby() junto con agg() para calcular la altura promedio por especie y entorno.

  2. Identificar qué especie de árbol tiene la mayor inclinación promedio.

    Aplicar groupby() y agg() para determinar la especie con la mayor inclinación promedio.

  3. Crear una tabla pivot comparando alturas en parques vs veredas.

    Utilizar pivot_table() para crear una tabla que compare las alturas promedio de las especies en diferentes entornos.

  4. Graficar la distribución de alturas de los Jacarandás.

    Filtrar el DataFrame para obtener solo los Jacarandás y utilizar plt.hist() para graficar la distribución de sus alturas.

Pruebas

# Prueba 1: Calcular altura promedio por especie y entorno
altura_promedio = df.groupby(['especie', 'entorno'])['altura'].agg(np.mean)
print(altura_promedio)

# Prueba 2: Especie con mayor inclinación promedio
inclinacion_promedio = df.groupby('especie')['inclinacion'].agg(np.mean)
especie_mayor_inclinacion = inclinacion_promedio.idxmax()
print(especie_mayor_inclinacion)

# Prueba 3: Tabla pivot de alturas
tabla_pivot = df.pivot_table(values='altura', index='especie', columns='entorno', aggfunc=np.mean)
print(tabla_pivot)

# Prueba 4: Distribución de alturas de Jacarandás
jacarandas = df[df['especie'] == 'Jacarandá']
plt.hist(jacarandas['altura'])
plt.title('Distribución de Alturas de Jacarandás')
plt.xlabel('Altura (m)')
plt.ylabel('Frecuencia')
plt.show()

Este ejercicio está diseñado para estudiantes de nivel intermedio, con un enfoque en la aplicación práctica de funciones de agregación y análisis de datos en Pandas.