Ironhack-Data-Madrid-Octubre-2021 / W4-geospatial-data-project

0 stars 5 forks source link

[BeaSánchez]Proyecto3_Geospatial #4

Closed Beapsp closed 2 years ago

Beapsp commented 2 years ago

https://github.com/Beapsp/Proyecto3_GeoQ

yamadajc commented 2 years ago

Hola hola Bea! Tu corrector favorito viene a ver si me haces algún print infinito 😜.

Ahora en serio, sabes que todo lo que os digo son pequeñas anotaciones para que mejoréis si en la medida de lo posible.

¡Vamos a ello!

README

El readme esta perfect. Eso sí ... me faltaría un trabajo de edición en los apartados de ESTRUCTURA DEL PROYECTO y CONCLUSIÓN FINAL.

Estructura del repo

A primera vista organización de tu repo esta muy bien.

Ten cuidado con el .gitignore, parece que se te han colado algunas cosas en varios directorios. Recuerda que en el repo solo deberían elementos que queremos que el lector necesite.

Como te dije en el proyecto de pipeline, es interesante crear directorios para cada tipo de archivo como por ejemplo para las fotos. Creo que hubiese sido mas interesante ver los documentos json importados directamente a MongoDB (MADRID, MALLORCA, SALAMANCA) en otro directorio o incluso en la carpeta data.

Si tienes tiempo podrías dividir el jupyter ubicación_geo.ipynb en cada uno de los pasos generales. Por ejemplo uno en el que hagas únicamente la extracción de los datos y otro en el que hagas solo mapas.

Sintaxis de código

Estoy viendo que en el jupyter extraes la información de la API. Este proceso se repite una y otra vez. Recuerda que cuando esto pasa deberías crear una función. Se me ocurre que podrías haber hecho una función en la que le pasaras como parámetro Aeropuertos, lugares de fiesta, restaurantes veganos y guarderías/colegios para la extracción.

En cleaning_functions_GEOQ.py veo como tienes muchas funciones. Pero recuerda que en los proyectos solo debemos tener código que se utilice.

No he visto que usaras getFromDict. ¿Para qué tenerla en un .py?

Recuerda que las funciones deben poder ser generalizable. Por ejemplo en el siguiente caso me haces lo siguiente.

def suma_requisitos(df1,df2,df3,df4): 
    return pd.concat([df1, df2, df3, df4])

Podrias haberla hecho con args pasándole los df como una lista.

def suma_requisitos(*args):  
    return pd.concat(*args)

Con esto ademas podrias haberla reutilizado en vez de usar suma_final().

Y ojo con el docstring… Mantén la misma estructura siempre.

def hacer_cosas():
    ''' Esta función hace cosas.
    args: cosas
    Returns: algo'''
return algo

ToDo

Has trabajado re-bien. Si quieres mejorar este proyecto le daría una vuelta a la edición del readme y me cerraría unas funciones para dejarlo de 10.

Super curro 🚀