|
| 1 | +# Plantilla de Proyecto de Ciencia de Datos |
| 2 | + |
| 3 | +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. |
| 4 | + |
| 5 | +## Estructura |
| 6 | + |
| 7 | +El proyecto está organizado de la siguiente manera: |
| 8 | + |
| 9 | +- `app.py` - El script principal de Python que ejecutas para tu proyecto. |
| 10 | +- `explore.py` - Un notebook para que puedas hacer tus exploraciones, idealmente el codigo de este notebook se migra hacia app.py para subir a produccion. |
| 11 | +- `utils.py` - Este archivo contiene código de utilidad para operaciones como conexiones de base de datos. |
| 12 | +- `requirements.txt` - Este archivo contiene la lista de paquetes de Python necesarios. |
| 13 | +- `models/` - Este directorio debería contener tus clases de modelos SQLAlchemy. |
| 14 | +- `data/` - Este directorio contiene los siguientes subdirectorios: |
| 15 | + - `interim/` - Para datos intermedios que han sido transformados. |
| 16 | + - `processed/` - Para los datos finales a utilizar para el modelado. |
| 17 | + - `raw/` - Para datos brutos sin ningún procesamiento. |
| 18 | + |
| 19 | +## Configuración |
| 20 | + |
| 21 | +**Prerrequisitos** |
| 22 | + |
| 23 | +Asegúrate de tener Python 3.11+ instalado en tu máquina. También necesitarás pip para instalar los paquetes de Python. |
| 24 | + |
| 25 | +**Instalación** |
| 26 | + |
| 27 | +Clona el repositorio del proyecto en tu máquina local. |
| 28 | + |
| 29 | +Navega hasta el directorio del proyecto e instala los paquetes de Python requeridos: |
| 30 | + |
| 31 | +```bash |
| 32 | +pip install -r requirements.txt |
| 33 | +``` |
| 34 | + |
| 35 | +**Crear una base de datos (si es necesario)** |
| 36 | + |
| 37 | +Crea una nueva base de datos dentro del motor Postgres personalizando y ejecutando el siguiente comando: `$ createdb -h localhost -U <username> <db_name>` |
| 38 | +Conéctate al motor Postgres para usar tu base de datos, manipular tablas y datos: `$ psql -h localhost -U <username> <db_name>` |
| 39 | +NOTA: Recuerda revisar la información del archivo ./.env para obtener el nombre de usuario y db_name. |
| 40 | + |
| 41 | +¡Una vez que estés dentro de PSQL podrás crear tablas, hacer consultas, insertar, actualizar o eliminar datos y mucho más! |
| 42 | + |
| 43 | +**Variables de entorno** |
| 44 | + |
| 45 | +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: |
| 46 | + |
| 47 | +```makefile |
| 48 | +DATABASE_URL="your_database_connection_url_here" |
| 49 | +``` |
| 50 | + |
| 51 | +## Ejecutando la Aplicación |
| 52 | + |
| 53 | +Para ejecutar la aplicación, ejecuta el script app.py desde la raíz del directorio del proyecto: |
| 54 | + |
| 55 | +```bash |
| 56 | +python app.py |
| 57 | +``` |
| 58 | + |
| 59 | +## Añadiendo Modelos |
| 60 | + |
| 61 | +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. |
| 62 | + |
| 63 | +Definición del modelo de ejemplo (`models/example_model.py`): |
| 64 | + |
| 65 | +```py |
| 66 | +from sqlalchemy.ext.declarative import declarative_base |
| 67 | +from sqlalchemy import Column, Integer, String |
| 68 | + |
| 69 | +Base = declarative_base() |
| 70 | + |
| 71 | +class ExampleModel(Base): |
| 72 | + __tablename__ = 'example_table' |
| 73 | + id = Column(Integer, primary_key=True) |
| 74 | + name = Column(String) |
| 75 | + |
| 76 | +``` |
| 77 | + |
| 78 | +## Trabajando con Datos |
| 79 | + |
| 80 | +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. |
| 81 | + |
| 82 | +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. |
| 83 | + |
| 84 | +## Contribuyentes |
| 85 | + |
| 86 | +Esta plantilla fue construida como parte del [Data Science and Machine Learning Bootcamp](https://4geeksacademy.com/us/coding-bootcamps/datascience-machine-learning) de 4Geeks Academy por [Alejandro Sanchez](https://twitter.com/alesanchezr) y muchos otros contribuyentes. Descubre más sobre [los programas BootCamp de 4Geeks Academy](https://4geeksacademy.com/us/programs) aquí. |
| 87 | + |
| 88 | +Otras plantillas y recursos como este se pueden encontrar en la página de GitHub de la escuela. |
0 commit comments