Ejercicio 10: Indexación y Filtrado

En este ejercicio, se busca que los estudiantes aprendan a seleccionar datos de un DataFrame de manera eficiente utilizando la biblioteca Pandas. Se espera que los estudiantes apliquen técnicas de indexación y filtrado para manipular y analizar datos de manera efectiva.

Objetivos

  • Aprender a utilizar métodos de selección de datos en Pandas como .loc[], .iloc[], .query(), y boolean indexing.
  • Practicar la extracción de subconjuntos de datos basados en condiciones específicas.
  • Identificar las especies más comunes en un conjunto de datos.

Entrada de Datos

Se proporcionará un DataFrame con la siguiente estructura:

  • nombre_com: Nombre común del árbol.
  • altura_tot: Altura total del árbol en metros.
  • inclinacio: Inclinación del árbol en grados.
  • parque: Nombre del parque donde se encuentra el árbol.

Código Base

import pandas as pd

# Supongamos que el DataFrame se llama df y ya ha sido cargado previamente
# df = pd.read_csv('path_to_file.csv')

# Selección de columnas relevantes
columnas_relevantes = ['nombre_com', 'altura_tot', 'inclinacio']

# TODO: Implementar

Tareas

  1. Seleccionar Columnas Relevantes: Filtrar el DataFrame para que solo contenga las columnas nombre_com, altura_tot, e inclinacio.

  2. Extraer Árboles del Parque “GENERAL PAZ”: Utilizar el método .query() para obtener todos los registros de árboles ubicados en el parque “GENERAL PAZ”.

  3. Obtener las 10 Especies Más Comunes: Utilizar el método .value_counts() para identificar las 10 especies de árboles más comunes en el DataFrame.

  4. Seleccionar Árboles con Altura Mayor a 10m: Utilizar .loc[] para filtrar los árboles cuya altura total es mayor a 10 metros.

  5. Filtrar Árboles Inclinados Más de 30 Grados: Aplicar boolean indexing para obtener todos los árboles cuya inclinación es mayor a 30 grados.

Pruebas

Ejemplo de cómo deberían estructurarse las pruebas:

# Prueba para seleccionar columnas relevantes
df_relevante = df[columnas_relevantes]
print(df_relevante.head())

# Prueba para extraer árboles del parque "GENERAL PAZ"
df_general_paz = df.query('parque == "GENERAL PAZ"')
print(df_general_paz.head())

# Prueba para obtener las 10 especies más comunes
especies_comunes = df['nombre_com'].value_counts().head(10)
print(especies_comunes)

# Prueba para seleccionar árboles con altura mayor a 10m
arboles_altos = df.loc[df['altura_tot'] > 10]
print(arboles_altos.head())

# Prueba para filtrar árboles inclinados más de 30 grados
arboles_inclinados = df.loc[df['inclinacio'] > 30]
print(arboles_inclinados.head())

Se espera que los estudiantes sean capaces de obtener listas filtradas de árboles específicos, subconjuntos de datos basados en condiciones, y un resumen de las especies más comunes.