Plantilla de Proyecto de Ciencia de Datos
Plantilla de Proyecto de Ciencia de Datos
Esta plantilla está diseñada para impulsar proyectos de ciencia de datos proporcionando una configuración básica para conexiones de base de datos, procesamiento de datos, y desarrollo de modelos de aprendizaje automático. Incluye una organización estructurada de carpetas para tus conjuntos de datos y un conjunto de paquetes de Python predefinidos necesarios para la mayoría de las tareas de ciencia de datos.
Estructura
El proyecto está organizado de la siguiente manera:
src/app.py
→ Script principal de Python donde correrá tu proyecto.src/explore.ipynb
→ Notebook para exploración y pruebas. Una vez finalizada la exploración, migra el código limpio aapp.py
.src/utils.py
→ Funciones auxiliares, como conexión a bases de datos.requirements.txt
→ Lista de paquetes de Python necesarios.models/
→ Contendrá tus clases de modelos SQLAlchemy.data/
→ Almacena los datasets en diferentes etapas:data/raw/
→ Datos sin procesar.data/interim/
→ Datos transformados temporalmente.data/processed/
→ Datos listos para análisis.
⚡ Configuración Inicial en Codespaces (Recomendado)
No es necesario realizar ninguna configuración manual, ya que Codespaces se configura automáticamente con los archivos predefinidos que ha creado la academia para ti. Simplemente sigue estos pasos:
- Espera a que el entorno se configure automáticamente.
- Todos los paquetes necesarios y la base de datos se instalarán por sí mismos.
- El
username
ydb_name
creados automáticamente están en el archivo.env
en la raíz del proyecto.
- Una vez que Codespaces esté listo, puedes comenzar a trabajar inmediatamente.
💻 Configuración en Local (Solo si no puedes usar Codespaces)
Prerrequisitos
Asegúrate de tener Python 3.11+ instalado en tu máquina. También necesitarás pip para instalar los paquetes de Python.
Instalación
Clona el repositorio del proyecto en tu máquina local.
Navega hasta el directorio del proyecto e instala los paquetes de Python requeridos:
pip install -r requirements.txt
Crear una base de datos (si es necesario)
Crea una nueva base de datos dentro del motor Postgres personalizando y ejecutando el siguiente comando:
$ psql -U postgres -c "DO \$\$ BEGIN
CREATE USER mi_usuario WITH PASSWORD 'mi_contraseña';
CREATE DATABASE mi_base_de_datos OWNER mi_usuario;
END \$\$;"
Conéctate al motor Postgres para usar tu base de datos, manipular tablas y datos:
$ psql -U mi_usuario -d mi_base_de_datos
¡Una vez que estés dentro de PSQL podrás crear tablas, hacer consultas, insertar, actualizar o eliminar datos y mucho más!
Variables de entorno
Crea un archivo .env en el directorio raíz del proyecto para almacenar tus variables de entorno, como tu cadena de conexión a la base de datos:
DATABASE_URL="postgresql://<USUARIO>:<CONTRASEÑA>@<HOST>:<PUERTO>/<NOMBRE_BD>"
#example
DATABASE_URL="postgresql://mi_usuario:mi_contraseña@localhost:5432/mi_base_de_datos"
Ejecutando la Aplicación
Para ejecutar la aplicación, ejecuta el script app.py desde la raíz del directorio del proyecto:
python src/app.py
Añadiendo Modelos
Para añadir clases de modelos SQLAlchemy, crea nuevos archivos de script de Python dentro del directorio models/. Estas clases deben ser definidas de acuerdo a tu esquema de base de datos.
Definición del modelo de ejemplo (models/example_model.py
):
from sqlalchemy.orm import DeclarativeBase
from sqlalchemy import String
from sqlalchemy.orm import Mapped, mapped_column
Base = declarative_base()
class ExampleModel(Base):
__tablename__ = 'example_table'
id: Mapped[int] = mapped_column(primary_key=True)
username: Mapped[str] = mapped_column(unique=True)
Trabajando con Datos
Puedes colocar tus conjuntos de datos brutos en el directorio data/raw, conjuntos de datos intermedios en data/interim, y los conjuntos de datos procesados listos para el análisis en data/processed.
Para procesar datos, puedes modificar el script app.py para incluir tus pasos de procesamiento de datos, utilizando pandas para la manipulación y análisis de datos.
Contribuyentes
Esta plantilla fue construida como parte del Data Science and Machine Learning Bootcamp de 4Geeks Academy por Alejandro Sanchez y muchos otros contribuyentes. Descubre más sobre los programas BootCamp de 4Geeks Academy aquí.
Otras plantillas y recursos como este se pueden encontrar en la página de GitHub de la escuela.