Módulo 6: Manejo de datos y visualización

Tema 21: Introducción a pandas (DataFrames y Series)

Objetivo del tema

Aprender los fundamentos de la librería pandas, una de las herramientas más potentes de Python para la manipulación, limpieza y análisis de datos. Se estudiarán las estructuras principales: Series y DataFrames, junto con ejemplos prácticos de creación y acceso a los datos.

1. ¿Qué es pandas?

pandas es una biblioteca de Python diseñada para trabajar con datos tabulares (filas y columnas), similar a una hoja de cálculo o una tabla de base de datos.

Fue desarrollada para:

  • Leer y escribir datos desde diferentes formatos (CSV, Excel, JSON, SQL…).
  • Limpiar, filtrar, combinar y transformar datos fácilmente.
  • Analizar y preparar datos para visualizaciones o modelos.

pandas se apoya en NumPy, lo que le permite operar de forma eficiente con grandes volúmenes de datos.

2. Instalación e importación

Para trabajar con pandas, primero debe instalarse (si no lo está):

pip install pandas

Y luego se importa en el script:

Por convención, se usa el alias pd para abreviar las llamadas.

3. Estructura básica de pandas

pandas tiene dos estructuras principales de datos:

Estructura Descripción Similar a
Series Columna de datos unidimensional Lista o vector
DataFrame Conjunto de Series organizadas en filas y columnas Hoja de cálculo o tabla

4. Serie (pd.Series)

Una Serie es una secuencia unidimensional de datos, con un índice asociado.

Acceso a los elementos

print(nombres[0]) # Accede por índice → "Ana"

También se puede asignar un índice personalizado:

5. DataFrame (pd.DataFrame)

Un DataFrame es una estructura de dos dimensiones con filas y columnas, donde cada columna es una Serie.

Crear un DataFrame desde un diccionario

import pandas as pd

6. Acceso a datos en un DataFrame

Acceder a una columna

Acceder a varias columnas

Acceder a una fila por índice

Acceso mixto

7. Operaciones básicas con pandas

Filtrado de filas

8. Añadir y eliminar datos

Añadir una nueva columna

Eliminar una columna

Añadir una nueva fila

9. Importar datos desde un archivo CSV

Y guardar los cambios:

10. Buenas prácticas al trabajar con pandas

  • Asigna nombres claros a columnas y variables.
  • Usa inplace=True solo cuando estés seguro (modifica el DataFrame original).
  • Crea copias antes de manipular (df.copy()).
  • Aprovecha los métodos como .info(), .describe(), .isnull() para revisar los datos.

Actividades prácticas

Ejercicio 1

Crea una Serie con los nombres de tus 5 películas favoritas y sus años de estreno como índice. Muestra solo las películas posteriores a 2015.

Ejercicio 2

Crea un DataFrame con los siguientes datos:

Nombre Edad Ciudad
Ana 25 Madrid
Luis 30 Barcelona
Marta 28 Valencia
  1. Muestra solo la columna Ciudad.
  2. Agrega una nueva columna llamada Puntuación con valores del 1 al 3.
  3. Filtra solo las filas con Edad > 27.

Ejercicio 3

Descarga un archivo CSV (por ejemplo, un listado de estudiantes o productos), cárgalo con pd.read_csv() y muestra:

  • El número de filas y columnas.
  • Las primeras 3 filas.
  • Las edades mayores a 25 o precios mayores a 100 (según el dataset).

Evaluación del tema

Criterios de evaluación:

  • Comprende y explica la diferencia entre Series y DataFrames.
  • Realiza operaciones básicas (creación, filtrado, acceso a datos).
  • Usa correctamente loc y iloc.
  • Importa y exporta datos con read_csv() y to_csv().
  • Realiza correctamente los ejercicios propuestos.

Tema 22: Limpieza y filtrado de datos

Objetivo del tema

Aprender a detectar, limpiar y filtrar datos utilizando las herramientas que ofrece pandas. Se abordarán las técnicas más comunes para tratar valores nulos, duplicados y errores de formato, además de filtrar información según condiciones específicas.

1. La importancia de la limpieza de datos

En el mundo real, los datos rara vez vienen limpios. Al trabajar con información de hojas de cálculo, CSV, APIs o bases de datos, es frecuente encontrar:

  • Valores faltantes (NaN, None, campos vacíos).
  • Duplicados.
  • Errores tipográficos o de formato.
  • Inconsistencias (por ejemplo, "Madrid" y "madrid").

La limpieza de datos es el primer paso antes de analizarlos o visualizarlos.

2. Detección de valores nulos

pandas representa los valores ausentes como NaN (Not a Number).

Crear un ejemplo con datos faltantes

Detectar valores nulos

3. Eliminación o sustitución de valores nulos

Eliminar filas con valores nulos

Eliminar columnas con valores nulos

Rellenar valores nulos

4. Detección y eliminación de duplicados

Los duplicados pueden distorsionar el análisis de datos.

Eliminar duplicados:

Mantener el último duplicado:

5. Corrección de errores de formato

Convertir texto a mayúsculas o minúsculas

Eliminar espacios en blanco

Conversión de tipos de datos

Si algún valor no se puede convertir:

6. Filtrado de datos

El filtrado permite seleccionar subconjuntos del DataFrame según condiciones.

Filtros simples

Filtros combinados

Filtro por texto

Filtro por valores específicos

7. Reindexar y ordenar datos

Ordenar por columna

Resetear índices tras limpieza

8. Revisión final del DataFrame limpio

Tras limpiar y filtrar, siempre es recomendable revisar:

Esto ayuda a verificar que los tipos de datos y los valores sean correctos antes de seguir analizando o visualizando.

Actividades prácticas

Ejercicio 1

Crea un DataFrame con datos de ejemplo que contenga valores nulos y duplicados. Aplica los siguientes pasos:

  1. Elimina las filas con valores nulos.
  2. Rellena los valores faltantes de una columna con un valor por defecto.
  3. Elimina los registros duplicados.

Ejercicio 2

Descarga un archivo CSV con datos de clientes o productos.

  1. Carga los datos en pandas.
  2. Muestra cuántos valores nulos tiene cada columna.
  3. Rellena o elimina los nulos según corresponda.
  4. Filtra los registros con precios o edades mayores a una cantidad determinada.

Ejercicio 3

Crea un DataFrame con los siguientes datos:

Nombre Edad Ciudad
Ana 25 Madrid
Luis None Sevilla
Marta 28 Madrid
Ana 25 Madrid
  1. Detecta y elimina duplicados.
  2. Rellena la edad de Luis con la media del resto.
  3. Muestra solo los registros de Madrid.

Evaluación del tema

Criterios de evaluación:

  • Usa correctamente métodos como isnull(), dropna(), fillna() y drop_duplicates().
  • Comprende y aplica filtros con condiciones y operadores lógicos.
  • Identifica y corrige errores de formato o tipo de datos.
  • Presenta el DataFrame limpio y bien estructurado.
  • Realiza los ejercicios con código funcional y comentado.

Tema 23: Introducción a matplotlib y seaborn

Objetivo del tema

Aprender los fundamentos de la visualización de datos en Python utilizando las librerías matplotlib y seaborn. El alumnado comprenderá cómo representar información de forma clara y atractiva a través de gráficos básicos como líneas, barras, dispersión y diagramas de caja.

1. ¿Por qué visualizar los datos?

La visualización de datos es una parte fundamental del análisis, ya que permite:

  • Detectar patrones o tendencias fácilmente.
  • Identificar valores atípicos (outliers).
  • Comunicar resultados de forma visual e intuitiva.

Un gráfico puede transmitir lo que una tabla de números no revela fácilmente.

2. Instalación e importación de librerías

Si aún no están instaladas:

pip install matplotlib seaborn

Y luego se importan en el script:

Por convención, matplotlib.pyplot se importa como plt y seaborn como sns.

3. Introducción a Matplotlib

Crear un gráfico básico

Explicación:

  • plt.plot() crea una línea entre los puntos.
  • plt.title(), plt.xlabel(), plt.ylabel() añaden etiquetas.
  • plt.show() muestra la figura.

Personalizar estilo y color

Parámetros útiles:

  • color: color de la línea.
  • linestyle: tipo de línea ('-', '--', ':').
  • marker: forma del punto ('o', '^', 's', etc.).

Gráfico de barras

Gráfico circular (pie chart)

4. Introducción a Seaborn

Seaborn está construido sobre matplotlib y pandas, y permite crear gráficos más atractivos y con menos código.

Crear un DataFrame de ejemplo

Gráfico de dispersión (scatter plot)

Gráfico de barras (countplot y barplot)

O con valores numéricos:

Gráfico de caja (boxplot)

Permite visualizar la distribución y los valores atípicos:

Histograma con Seaborn

5. Personalización de estilo en Seaborn

Seaborn incluye temas visuales para mejorar el aspecto de los gráficos.

6. Combinación de Matplotlib y Seaborn

Ambas bibliotecas se pueden usar juntas. Por ejemplo, con Matplotlib puedes añadir títulos, etiquetas o líneas guía sobre un gráfico creado con Seaborn:

7. Guardar gráficos

Puedes guardar los gráficos generados con:

Acepta formatos como .png, .jpg, .pdf, .svg.

Actividades prácticas

Ejercicio 1

Crea un DataFrame con los nombres y edades de 5 personas.

  1. Realiza un gráfico de barras con matplotlib.
  2. Añade título, etiquetas de ejes y color personalizado.
  3. Guarda el gráfico como imagen.

Ejercicio 2

Con un DataFrame de estudiantes (nombre, nota y curso):

  1. Usa Seaborn para representar la nota media por curso (barplot).
  2. Crea un histograma con las notas.
  3. Añade una línea que marque la nota media del grupo.

Ejercicio 3

Descarga un CSV con datos reales (por ejemplo, precios de vivienda o población).

  1. Carga los datos en pandas.
  2. Crea un gráfico de dispersión entre dos variables numéricas (por ejemplo, precio y metros cuadrados).
  3. Representa la distribución de una columna numérica con histplot() o boxplot().

Evaluación del tema

Criterios de evaluación:

  • Comprende las diferencias entre matplotlib y seaborn.
  • Crea gráficos básicos con ambos.
  • Personaliza títulos, colores, etiquetas y estilos.
  • Integra gráficos con datos provenientes de pandas.
  • Presenta los gráficos de forma clara y correctamente guardados.

Conclusión

En este tema, los estudiantes aprenden las bases de la visualización de datos, un pilar fundamental del análisis de información moderna. A partir de aquí, podrán generar gráficos más complejos, explorar correlaciones y comunicar resultados visualmente en sus proyectos finales.