Ejercicios de Analisis de Datos con Python

🚀 Dominando el Análisis de Datos con Python en Colab 🐍
Una infografía interactiva para potenciar tus habilidades en ciencia de datos.
Cálculos con Arrays: Funciones Universales (ufuncs)
Descripción: Este módulo explora las ufuncs de NumPy, que son la clave para realizar operaciones vectorizadas rápidas en arrays. Se detalla la lentitud de los bucles nativos de Python y cómo las ufuncs ofrecen una alternativa compilada y eficiente.
Utilidad:
- Optimización de operaciones matemáticas en grandes volúmenes de datos.
- Reducción significativa del tiempo de ejecución en comparación con los bucles tradicionales de Python.
Ejemplos de Uso:
- Cálculo de recíprocos de arrays numéricos.
- Operaciones aritméticas básicas (suma, resta, multiplicación, división) directamente sobre arrays.
- Aplicación de funciones trigonométricas, exponenciales y logarítmicas a todos los elementos de un array simultáneamente.
Operaciones en Arrays: Agregación de Datos
Descripción: Se enfoca en las funciones de agregación de NumPy para resumir grandes conjuntos de datos. Cubre desde sumas y promedios hasta cálculos de desviación estándar y percentiles, tanto para arrays unidimensionales como multidimensionales.
Utilidad:
- Obtención rápida de estadísticas descriptivas de conjuntos de datos.
- Análisis de tendencias y variabilidad en datos numéricos.
Ejemplos de Uso:
- Calcular la suma total, el mínimo, el máximo, la media y la desviación estándar de un array de temperaturas anuales.
- Determinar el mes más caluroso y el más frío basándose en datos de temperatura mensuales.
- Contar el número de días con temperaturas extremas.
Ordenamiento de Arrays en NumPy
Descripción: Este apartado enseña las diferentes formas de ordenar arrays en NumPy utilizando np.sort(), .sort() (in-place), np.argsort() para obtener índices ordenados, y np.partition() para ordenamientos parciales.
Utilidad:
- Organización eficiente de datos para análisis posteriores.
- Identificación rápida de elementos extremos (los N más grandes/pequeños).
- Implementación de algoritmos como k-Nearest Neighbors.
Ejemplos de Uso:
- Ordenar una lista de puntuaciones de exámenes de forma ascendente y descendente.
- Encontrar los k-vecinos más cercanos en un conjunto de datos multidimensional utilizando distancias y partición eficiente.
- Ordenar filas o columnas específicas de una matriz.
Operaciones en Pandas: Preservación y Alineación de Índices
Descripción: Extiende el concepto de ufuncs de NumPy a Pandas, destacando cómo Pandas preserva las etiquetas de índice y columna automáticamente. Se profundiza en la alineación automática de índices en operaciones binarias, facilitando la combinación de datos de diversas fuentes.
Utilidad:
- Mantener la integridad y el contexto de los datos durante operaciones.
- Realizar cálculos entre Series y DataFrames con diferentes índices sin errores.
Ejemplos de Uso:
- Sumar Series con índices no coincidentes y observar la generación de
NaNdonde no hay alineación. - Usar el parámetro
fill_valueen métodos como.add()o.sub()para manejar valores faltantes durante la alineación. - Restar una Serie (e.g., una fila o columna) de un DataFrame completo.
Indexación y Selección de Datos en Pandas
Descripción: Este módulo es crucial para manipular DataFrames y Series, explicando las diversas formas de seleccionar y filtrar datos: notación de diccionario, atributos, slicing, máscaras booleanas, e indexadores explícitos (.loc) e implícitos (.iloc).
Utilidad:
- Acceso preciso y flexible a subconjuntos de datos.
- Preparación de datos para análisis específicos o visualizaciones.
Ejemplos de Uso:
- Seleccionar columnas específicas o rangos de filas.
- Filtrar datos basándose en condiciones complejas (e.g., salario > X y ciudad = Y).
- Modificar valores en ubicaciones específicas del DataFrame.
- Ordenar el DataFrame por una columna y seleccionar los N primeros elementos.
Combinando Datasets: Concatenación
Descripción: Se aborda la combinación de Series y DataFrames mediante pd.concat(). Explora cómo manejar índices duplicados, añadir MultiIndex para identificar el origen de los datos, y diferentes tipos de joins (inner, outer) para controlar las columnas resultantes.
Utilidad:
- Unir datos de diferentes fuentes o periodos.
- Preparar un conjunto de datos unificado para análisis a gran escala.
Ejemplos de Uso:
- Combinar datos de ventas de diferentes trimestres.
- Unir DataFrames con columnas parcialmente superpuestas.
- Concatenar con el parámetro
keyspara mantener un seguimiento del origen de las filas.
Agregación y Agrupación (Groupby: Split, Apply, Combine)
Descripción: Introduce el poderoso concepto de «groupby» en Pandas, desglosado en los pasos de «dividir, aplicar, combinar». Permite realizar agregaciones condicionales y transformaciones complejas sobre subconjuntos de datos, como los métodos de detección de exoplanetas del dataset ‘planets’.
Utilidad:
- Análisis segmentado de datos.
- Cálculo de métricas por categoría o grupo.
- Generación de informes resumidos por diferentes dimensiones.
Ejemplos de Uso:
- Calcular la media de una columna para cada categoría única en otra columna.
- Agrupar datos de planetas por método de detección y calcular la mediana del período orbital.
- Filtrar grupos que cumplan ciertas condiciones estadísticas.
Tablas Dinámicas (Pivot Tables)
Descripción: Demuestra el uso de .pivot_table() de Pandas, una herramienta flexible para resumir y reorganizar datos de un DataFrame. Permite crear vistas tabulares agregadas, con filas, columnas y valores definidos por el usuario, ideal para explorar relaciones complejas en los datos.
Utilidad:
- Creación de resúmenes de datos interactivos.
- Análisis multidimensional de métricas.
- Exploración rápida de patrones y relaciones en grandes conjuntos de datos.
Ejemplos de Uso:
- Analizar la tasa de supervivencia del Titanic por sexo y clase.
- Explorar datos de nacimientos por década y género.
- Calcular medias o sumas de varias métricas simultáneamente.
Ejercicios de Práctica y Datos Reales
Descripción: Este bloque consolida todo lo aprendido aplicando las técnicas a diversos problemas y conjuntos de datos reales. Incluye ejercicios sobre:
1. Países Grandes: Filtrar países por área o población.
2. Tweets Inválidos: Identificar tweets por longitud de contenido.
3. Salario N-ésimo más Alto: Encontrar el N-ésimo salario más alto de una tabla.
4. Gerentes con Subordinados: Identificar gerentes con al menos cinco subordinados directos.
5. Productos Vendidos por Fecha: Agrupar productos vendidos por fecha y listar productos únicos.
Además, se exploran conjuntos de datos como Bitly (zonas horarias) y MovieLens (calificaciones de películas) para un análisis más profundo.
Utilidad:
- Aplicación práctica de habilidades de Pandas y NumPy.
- Manejo de datos desestructurados y complejos (ej., datos Bitly, nombres de bebés).
- Resolución de problemas comunes en análisis de datos.
Ejemplos de Uso:
- Creación de un DataFrame a partir de datos JSON.
- Limpieza y conteo de datos categóricos (zonas horarias).
- Fusión de múltiples DataFrames para un análisis integrado.
- Cálculo de medias de calificaciones de películas por género y edad.
