Este proyecto implementa un pipeline ETL (Extract, Transform, Load) completo utilizando Python y Pandas, demostrando buenas prácticas de ingeniería de datos para la manipulación, limpieza y carga de datos desde múltiples fuentes.
Características principales
- Extracción de datos desde diferentes fuentes (CSV, JSON, Excel, bases de datos SQL)
- Transformación y limpieza de datos utilizando Pandas, incluyendo manejo de valores nulos, normalización y validación
- Carga automatizada a sistemas de almacenamiento (bases de datos relacionales, data warehouses)
- Documentación exhaustiva del proceso ETL y guía de uso
- Gestión de privacidad y seguridad de datos sensibles
Tecnologías utilizadas
- Python 3.10+
- Pandas
- SQLAlchemy
- PostgreSQL/MySQL
- Docker para entornos reproducibles
- Unit testing con pytest
ETL-e-ingesta-datos-python/
│
├── data/ # Datos de entrada y salida (no subir datos sensibles a GitHub)
│ ├── raw/
│ └── processed/
│
├── notebooks/ # Jupyter notebooks para exploración y pruebas
│
├── src/ # Código fuente del proyecto
│ └── main.py # Script principal de ETL
│
├── tests/ # Pruebas unitarias o de integración
│
├── .gitignore # Archivos y carpetas a ignorar por git
├── requirements.txt # Dependencias del proyecto
├── README.md # Documentación principal
└── LICENSE # (Opcional) Licencia del proyecto
- Clona el repositorio:
git clone https://github.com/rmendoza-code/ETL-e-ingesta-de-datos-con-Python.git
- Instala las dependencias:
pip install -r requirements.txt
- Coloca tus archivos de datos en la carpeta
data/raw/
. - Ejecuta el script principal:
python src/main.py
- Los resultados procesados se guardarán en
data/processed/
.
Puedes usar los notebooks en la carpeta notebooks/
para exploración y pruebas adicionales.
Incluye tus pruebas en la carpeta tests/
y ejecútalas con tu framework favorito (por ejemplo, pytest).
- Modulariza el código en funciones y/o clases.
- Utiliza logging para el seguimiento de procesos.
- Maneja errores y excepciones de forma clara.
Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más información.