- Elaboracion de 6 funciones con objetivos especificos y creacion de un modelo de Machine Learning que hace una recomendacion de las 5 peliculas mas similares, todo este desarrollo, desde extraccion de los datos hasta la creacion del modelo (Data engineering), proyecto solicitado por nuestro empleador que provee servicios de agregación de plataformas de streaming, utilizamos un dataset llamado movies_dataset.csv para realizar las transformaciones requeridas
- Data engineer
EXTRACCIÓN DE DATOS
- Importación de la librería pandas para el manejo de los dataframes
- Ingesta de datos (archivos .csv provisto por nuestro empleador)
- Análisis exploratorio del dataset para conocer sus características principales
TRANSFORMACIONES
-
Desanidar algunos campos, como
belongs_to_collection,production_companiesy otros que contienen en sus filas, diccionarios y listas, para poder ser utilizados y unirlo al nuevo dataset y faciliten la creacion de la API -
Los valores nulos de los campos
revenue,budgetdeben ser rellenados por el número0. -
Los valores nulos del campo
release datedeben eliminarse. -
De haber fechas, deberán tener el formato
AAAA-mm-dd, además deberán crear la columnarelease_yeardonde extraerán el año de la fecha de estreno. -
Crear la columna con el retorno de inversión, llamada
returncon los camposrevenueybudget, dividiendo estas dos últimasrevenue / budget, cuando no hay datos disponibles para calcularlo, deberá tomar el valor0. -
Eliminar las columnas que no serán utilizadas,
video,imdb_id,adult,original_title,vote_count,poster_pathyhomepage. -
Exportar CSV final (df) con todas las transformaciones
Nota: La extracción de datos así como las respectivas transformaciones pueden verse desarrolladas en el archivo ETL.ipynb
CONSULTAS A REALIZAR
-
Se ingresa el mes y la consulta debe retornar la cantidad de peliculas que se estrenaron ese mes (nombre del mes, en str, ejemplo 'enero') historicamente'''
-
Se ingresa el dia y la consulta debe retornar la cantidad de peliculas que se estrenaron ese dia (de la semana, en str, ejemplo 'lunes') historicamente'''
-
Se ingresa la franquicia, y la consulta debe retornr la cantidad de peliculas, ganancia total y promedio'''
-
Se ingresas el pais y la consulta debe retornar la cantidad de peliculas producidas en el mismo'''
-
Si ingresa la productora y la consulta debe retorn la ganancia total y la cantidad de peliculas que produjeron'''
-
Se ingresas la pelicula y la consulta debe retornar la inversion, la ganancia, el retorno y el año en el que se lanzo'''
-
Se ingresas la pelicula y la consulta debe retornar la inversion, la ganancia, el retorno y el año en el que se lanzo'''
-
Sistema de Recomendacion de Peliculas→ Se ingresa un nombre de pelicula y la consulta te recomienda las similares en una lista de 5 valores'''
Se desarrolla el código de las funciones que responden a las consultas solicitadas por el cliente
Nota: El desarrolo de las consultas se encuentra alojado en el archivo desarrollo_de_funciones.ipynb
Proceso de puesta a disposición de los datos utilizando FastAPI (framework que permite construir APIs con Python) y realizar el deploy:
- Generación de archivo main.py (donde desarrollar el script) y otro requirements.txt (donde alojar los requerimientos para la API)
- Importación de las librerías a utilizar
- Declaración de la creación de la API
- Desarrollo de las consultas con formato:
@app.get('/retorno/{pelicula}')
async def retorno(pelicula):- Creacion de una cuenta en Render
- Creacion de la interfaz con los parametros indicados
*Ingrese a la API
- Coloque al final de la url, /docs para ingresar a la aplicacion
- Empiece con las consultas que desee
- Ejemplo si desea consultar la cantidad de peliculas que se estrenaron en un determinado mes, das click en GET /peliculas_mes/{mes Pelicula Mes} → le aparece en lado superior derecho de su pantalla un boton llamado Try it out
- Das click ahi y se habilita el campo para colocar el mes a consultar
- Colocas el mes
- Le das Execute y la app te mostrara abajo en Responses → Response body, la respuesta con la siguiente sintaxis → { "mes": "enero", "cantidad": 5912 }
- En las demas consultas, realizas el mismo procedimiento para solicitar la informacion
- Visual studio code
- Python
- Render
- FastApi
- Uvicorn
- Pandas library




