Proyecto de análisis de datos de vuelos y ventas para GateGroup Airlines. Incluye pipeline de limpieza de datos, análisis exploratorio (EDA), modelos de series temporales y dashboard interactivo.
- Descripción del Proyecto
- Estructura del Proyecto
- Instalación
- Uso
- Dataset
- Características del Dashboard
- Análisis Incluidos
- Tecnologías Utilizadas
- Contribuir
Este proyecto analiza datos históricos de vuelos y ventas de GateGroup Airlines para:
- ✅ Limpiar y validar datos de transacciones de vuelos
- ✅ Realizar análisis exploratorio de datos (EDA)
- ✅ Crear modelos predictivos de series temporales
- ✅ Visualizar insights en un dashboard interactivo
- ✅ Identificar patrones de ventas y comportamiento de pasajeros
Datos analizados: ~1.3 millones de transacciones (Enero - Agosto 2025)
mtyhack/
│
├── Data/
│ ├── Raw/ # Datos originales (no incluidos en Git)
│ │ ├── result_hack 3.2 REDUCED A.csv
│ │ └── result_hack 3.2 REDUCED b.csv
│ └── Clean/ # Datos procesados
│ ├── cleaned_data_combined.csv # Dataset limpio final
│ ├── forecast_ventas_30dias.csv # Predicciones futuras
│ ├── metricas_modelos.csv # Resultados de modelos
│ └── cleaning_report.txt # Reporte de limpieza
│
├── clean_data.py # Pipeline de limpieza de datos
├── explore_data.py # Script de exploración inicial
├── dashboard.py # Dashboard interactivo (Streamlit)
├── eda_analysis.ipynb # Notebook de análisis exploratorio
├── time_series_model.ipynb # Notebook de series temporales
│
├── requirements.txt # Dependencias del proyecto
├── .gitignore # Archivos ignorados por Git
└── README.md # Este archivo
- Python 3.13 o superior
- Git
-
Clonar el repositorio:
git clone https://github.com/edpm04/Gate_Model.git cd Gate_Model -
Crear entorno virtual:
python -m venv .venv
-
Activar entorno virtual:
- Windows:
.venv\Scripts\activate
- Mac/Linux:
source .venv/bin/activate
- Windows:
-
Instalar dependencias:
pip install -r requirements.txt
Ejecutar el pipeline de limpieza de datos:
python clean_data.pyPasos del pipeline:
- ✅ Normalización de nombres de columnas
- ✅ Conversión de tipos de datos
- ✅ Eliminación de duplicados
- ✅ Filtrado de valores inválidos (negativos)
- ✅ Eliminación de valores nulos
- ✅ Validación final y reporte
Resultado: Data/Clean/cleaned_data_combined.csv (1,293,077 registros limpios)
Iniciar el dashboard:
streamlit run dashboard.pyEl dashboard se abrirá automáticamente en tu navegador en http://localhost:8501
Abrir el notebook de análisis:
jupyter notebook eda_analysis.ipynbContenido del notebook:
- 13 secciones de análisis detallado
- Visualizaciones de distribuciones
- Análisis temporal
- Análisis de rutas y categorías
- Detección de outliers
- Análisis de item codes
Abrir el notebook de forecasting:
jupyter notebook time_series_model.ipynbModelos implementados:
- 📊 ARIMA - Modelo autoregresivo
- 📊 SARIMA - ARIMA con estacionalidad
- 📊 Exponential Smoothing (Holt-Winters)
Salida: Predicciones para los próximos 30 días
- Registros totales: 1,293,077 transacciones limpias
- Período: Enero - Agosto 2025 (8 meses)
- Tasa de retención: 97.06% después de limpieza
- Vuelos únicos: ~80,000
- Item codes únicos: 171
| Columna | Tipo | Descripción |
|---|---|---|
flight_key |
object | Identificador único del vuelo |
passengers |
int64 | Número de pasajeros |
nombre_de_aerolinea |
object | Nombre de la aerolínea |
fecha |
datetime64 | Fecha de la transacción |
origen |
object | Aeropuerto de origen |
destino |
object | Aeropuerto de destino |
flight_no |
object | Número de vuelo |
departute_local_time |
datetime64 | Hora de salida local |
arrival_local_time |
datetime64 | Hora de llegada local |
sales |
float64 | Ventas totales ($) |
type_transaction |
object | Tipo de transacción |
category |
object | Categoría del producto |
supercategory |
object | Supercategoría del producto |
lost_sales |
float64 | Ventas perdidas ($) |
item_code |
int64 | Código del producto |
currency |
object | Moneda |
warehouse |
object | Almacén |
- 💰 Ventas Totales - Con promedio por transacción
- 👥 Pasajeros - Con promedio por vuelo
✈️ Vuelos Únicos - Con total de transacciones- 📉 Ventas Perdidas - Con porcentaje del total
- ⏱️ Duración Promedio - De vuelos con duración mínima
- 📅 Rango de fechas
- 🏪 Warehouse
- 📦 Supercategoría
- 🌍 Aeropuerto de origen
- Ventas diarias (gráfico de línea)
- Pasajeros diarios
- Ventas por día de la semana
- Ventas por mes
- Top 15 rutas más frecuentes
- Top 15 rutas por ventas
- Top 10 aeropuertos de origen (gráfico circular)
- Top 10 aeropuertos de destino (gráfico circular)
- Ventas por supercategoría
- Ventas por warehouse
- Tabla de top 20 items
- Distribución de ventas (histograma)
- Relación pasajeros vs ventas (scatter plot)
- Mapa de calor: ventas por día y mes
- Distribución de duración de vuelos
- Análisis de ventas perdidas
- Resumen detallado por categoría
-
Análisis de Datos:
pandas- Manipulación de datosnumpy- Operaciones numéricas
-
Visualización:
matplotlib- Gráficos estáticosseaborn- Visualizaciones estadísticasplotly- Gráficos interactivos
-
Dashboard:
streamlit- Framework de dashboard interactivo
-
Machine Learning:
scikit-learn- Métricas y validaciónstatsmodels- Modelos de series temporales (ARIMA, SARIMA)
-
Jupyter:
jupyter- Notebooks interactivos
- 📊 171 item codes únicos - 52 items (30.4%) generan el 80% de transacciones
- 🏆 Item más vendido: 4724 (48,600 transacciones)
- 💰 Ventas totales: Análisis detallado por período
✈️ Duración promedio de vuelo: ~5.1 horas- 📉 Ventas perdidas: Identificadas y cuantificadas
- ✅ 0 valores nulos en dataset final
- ✅ 0 duplicados
- ✅ 0 valores negativos en pasajeros y ventas
- ✅ 97.06% de retención de datos originales
Las contribuciones son bienvenidas! Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
- Los datos crudos (
Data/Raw/) no están incluidos en el repositorio por su tamaño (>50MB cada archivo) - El archivo
.gitignoreestá configurado para excluir archivos de datos grandes - El reporte de limpieza (
cleaning_report.txt) sí está incluido para referencia
Desarrollador: EPedraza
Email: [email protected]
Repositorio: https://github.com/edpm04/Gate_Model
- GateGroup Airlines por proporcionar los datos
- Comunidad de Python y Streamlit por las excelentes librerías
- Hackathon organizers
⭐ Si este proyecto te fue útil, considera darle una estrella en GitHub!
Última actualización: Octubre 2025