Introducción
Pandas es una biblioteca esencial para la manipulación y análisis de datos en Python. Proporciona estructuras de datos rápidas, flexibles y expresivas diseñadas para facilitar el trabajo con datos "relacionales" o "etiquetados". En esta sección, aprenderemos a utilizar Pandas para realizar diversas operaciones de manipulación de datos.
Contenido
- Instalación de Pandas
- Estructuras de Datos en Pandas
- Series
- DataFrames
- Operaciones Básicas con DataFrames
- Selección y Filtrado de Datos
- Indexación y Slicing
- Agregar y Eliminar Columnas
- Manipulación de Datos
- Operaciones de Unión y Combinación
- Agrupación y Agregación
- Transformaciones y Aplicaciones
- Manejo de Datos Faltantes
- Ejercicios Prácticos
- Instalación de Pandas
Para instalar Pandas, puedes usar pip
:
- Estructuras de Datos en Pandas
Series
Una Serie es una estructura de datos unidimensional similar a una lista o un array de NumPy. Cada elemento en una Serie tiene un índice asociado.
DataFrames
Un DataFrame es una estructura de datos bidimensional con etiquetas en los ejes (filas y columnas). Es similar a una hoja de cálculo o una tabla en una base de datos.
# Crear un DataFrame data = { 'Nombre': ['Ana', 'Luis', 'Carlos', 'María'], 'Edad': [23, 45, 34, 25], 'Ciudad': ['Madrid', 'Barcelona', 'Valencia', 'Sevilla'] } df = pd.DataFrame(data) print(df)
- Operaciones Básicas con DataFrames
Selección y Filtrado de Datos
Puedes seleccionar columnas específicas de un DataFrame utilizando el nombre de la columna.
# Seleccionar una columna print(df['Nombre']) # Seleccionar múltiples columnas print(df[['Nombre', 'Ciudad']])
Indexación y Slicing
Puedes acceder a filas y columnas utilizando etiquetas o índices.
# Seleccionar una fila por índice print(df.loc[1]) # Seleccionar una fila por posición print(df.iloc[1]) # Seleccionar un rango de filas print(df[1:3])
Agregar y Eliminar Columnas
Puedes agregar nuevas columnas o eliminar columnas existentes.
# Agregar una nueva columna df['Salario'] = [30000, 40000, 35000, 45000] print(df) # Eliminar una columna df = df.drop('Salario', axis=1) print(df)
- Manipulación de Datos
Operaciones de Unión y Combinación
Puedes combinar DataFrames utilizando funciones como merge
, concat
y join
.
# Crear otro DataFrame data2 = { 'Nombre': ['Ana', 'Luis', 'Carlos', 'María'], 'Salario': [30000, 40000, 35000, 45000] } df2 = pd.DataFrame(data2) # Combinar DataFrames merged_df = pd.merge(df, df2, on='Nombre') print(merged_df)
Agrupación y Agregación
Puedes agrupar datos y aplicar funciones de agregación.
# Agrupar por una columna y calcular la media grouped_df = df.groupby('Ciudad').mean() print(grouped_df)
Transformaciones y Aplicaciones
Puedes aplicar funciones a columnas o filas.
- Manejo de Datos Faltantes
Pandas proporciona métodos para manejar datos faltantes.
# Crear un DataFrame con valores faltantes data = { 'Nombre': ['Ana', 'Luis', 'Carlos', 'María'], 'Edad': [23, None, 34, 25], 'Ciudad': ['Madrid', 'Barcelona', None, 'Sevilla'] } df = pd.DataFrame(data) # Rellenar valores faltantes df = df.fillna({'Edad': df['Edad'].mean(), 'Ciudad': 'Desconocida'}) print(df) # Eliminar filas con valores faltantes df = df.dropna() print(df)
- Ejercicios Prácticos
Ejercicio 1
Crea un DataFrame con los siguientes datos y realiza las siguientes operaciones:
Nombre | Edad | Ciudad | Salario |
---|---|---|---|
Ana | 23 | Madrid | 30000 |
Luis | 45 | Barcelona | 40000 |
Carlos | 34 | Valencia | 35000 |
María | 25 | Sevilla | 45000 |
- Selecciona las columnas 'Nombre' y 'Salario'.
- Filtra las filas donde la 'Edad' sea mayor de 30.
- Agrupa por 'Ciudad' y calcula la media de 'Salario'.
Solución
# Crear el DataFrame data = { 'Nombre': ['Ana', 'Luis', 'Carlos', 'María'], 'Edad': [23, 45, 34, 25], 'Ciudad': ['Madrid', 'Barcelona', 'Valencia', 'Sevilla'], 'Salario': [30000, 40000, 35000, 45000] } df = pd.DataFrame(data) # 1. Seleccionar columnas 'Nombre' y 'Salario' print(df[['Nombre', 'Salario']]) # 2. Filtrar filas donde 'Edad' > 30 print(df[df['Edad'] > 30]) # 3. Agrupar por 'Ciudad' y calcular la media de 'Salario' print(df.groupby('Ciudad')['Salario'].mean())
Conclusión
En esta sección, hemos aprendido a utilizar Pandas para la manipulación de datos en Python. Hemos cubierto las estructuras de datos básicas, operaciones comunes con DataFrames, y técnicas de manipulación de datos. Con estos conocimientos, estarás bien preparado para manejar y analizar datos de manera eficiente en tus proyectos de Python.
Curso de Programación en Python
Módulo 1: Introducción a Python
- Introducción a Python
- Configuración del Entorno de Desarrollo
- Sintaxis de Python y Tipos de Datos Básicos
- Variables y Constantes
- Entrada y Salida Básica
Módulo 2: Estructuras de Control
- Sentencias Condicionales
- Bucles: for y while
- Herramientas de Control de Flujo
- Comprensiones de Listas
Módulo 3: Funciones y Módulos
- Definición de Funciones
- Argumentos de Función
- Funciones Lambda
- Módulos y Paquetes
- Visión General de la Biblioteca Estándar
Módulo 4: Estructuras de Datos
Módulo 5: Programación Orientada a Objetos
Módulo 6: Manejo de Archivos
- Lectura y Escritura de Archivos
- Trabajo con Archivos CSV
- Manejo de Datos JSON
- Operaciones de Archivos y Directorios
Módulo 7: Manejo de Errores y Excepciones
- Introducción a las Excepciones
- Manejo de Excepciones
- Lanzamiento de Excepciones
- Excepciones Personalizadas
Módulo 8: Temas Avanzados
- Decoradores
- Generadores
- Administradores de Contexto
- Concurrencia: Hilos y Procesos
- Asyncio para Programación Asíncrona
Módulo 9: Pruebas y Depuración
- Introducción a las Pruebas
- Pruebas Unitarias con unittest
- Desarrollo Guiado por Pruebas
- Técnicas de Depuración
- Uso de pdb para Depuración
Módulo 10: Desarrollo Web con Python
- Introducción al Desarrollo Web
- Fundamentos del Framework Flask
- Construcción de APIs REST con Flask
- Introducción a Django
- Construcción de Aplicaciones Web con Django
Módulo 11: Ciencia de Datos con Python
- Introducción a la Ciencia de Datos
- NumPy para Computación Numérica
- Pandas para Manipulación de Datos
- Matplotlib para Visualización de Datos
- Introducción al Aprendizaje Automático con scikit-learn