Closed EduMartinezGarrido closed 3 years ago
Hola Edu! 🙋🏻♂️
Te voy comentando:
Respecto a la organización del repositorio 📚
El .gitignore: no tienes gitignore 🔪. Necesitas tenerlo. De hecho, se te ha colado un arhcivo temporal que es el DS_Store. En tu repo sólo tienes que tener lo que te aporta valor. Para borrarlo, tendrás que hacer:
git rm --cached .DS_Store
y luego meterlo en el .gitignore y repetir el proceso de git add, commit y push. Te pasa lo mismo con pycache .
Numera los jupyter, para que sigan un orden lógico: primero el filtro, luego la api, luego los mapas, etc.
Los mapas los metería en una carpeta de mapas o en la de output.
El README.md ✍🏻:
Respecto al código:
En el src (funcionasAPI.py):
Esta función:
def puntuacion(df_concat):
df_concat.loc[df_concat.bar < 45, "bar"]= 2
df_concat.loc[df_concat.bar > 45, "bar"]= 3
df_concat.loc[df_concat.Starbucks == 50, "Starbucks"]= 1
df_concat.loc[df_concat.Starbucks == 51, "Starbucks"]= 2
df_concat.loc[df_concat.Starbucks > 51, "Starbucks"]= 3
df_concat.loc[df_concat.basket < 30, "basket"]= 1
df_concat.loc[df_concat.basket == 36, "basket"]= 2
df_concat.loc[df_concat.basket >36, "basket"]= 3
df_concat.loc[df_concat.nursery < 10, "nursery"]= 1
df_concat.loc[df_concat.nursery == 18, "nursery"]= 3
df_concat.loc[df_concat.nursery > 10, "nursery"]= 2
df_concat.loc[df_concat.taxi < 3, "taxi"]= 1
df_concat.loc[df_concat.taxi == 3, "taxi"]= 2
df_concat.loc[df_concat.taxi > 3, "taxi"]= 3
df_concat.loc[df_concat.vegan < 10, "vegan"]= 1
df_concat.loc[df_concat.vegan > 30, "vegan"]= 3
df_concat.loc[df_concat.vegan > 10, "vegan"]= 2
return df_concat
está pidiendo a gritos una refactorización. Lo que decimos siempre: si hay líneas de código muy parecidas y muy repetidas, probablemente se pueda refactorizar. ¿cómo? probablemente lo más fácil sea utilizar un diccionario sobre el que iterar.
Para los jupyter:
API-FourSquare.ipynb
Empiezas a hacer queries con una localización, ¿aleatoria? entiendo que será la ubicación que te devuelva google cuando pones San Francisco, pero tienes librerías con las que puedes obtener esa información sin tener que hacerlo a mano.
Aquí lo mismo:
los_angeles_vegan = fa.get_data(34.085749, -118.343791,url_query,*queries_vegan)
los_angeles_nursery = fa.get_data(34.085749, -118.343791,url_query,*queries_nursery)
los_angeles_bar = fa.get_data(34.085749, -118.343791,url_query,*queries_bar)
los_angeles_taxi = fa.get_data(34.085749, -118.343791,url_query,*queries_taxi)
los_angeles_basket = fa.get_data(34.085749, -118.343791,url_query,*queries_basket)
los_angeles_starbucks = fa.get_data(34.085749, -118.343791,url_query,*queries_starbucks)
Si tienes una función donde lo único que cambia son las ciudades y las ubicaciones pero la función hace lo mismo para todas: ahí tienes tus dos parámetros.
Está genial que te hayas importado las funciones desde src.
En términos generales, te diría:
El proyecto está bien, has hecho mongoqueries, has hecho llamadas a API's y tienes el código modularizado e importado en notebooks. También has hecho visualización y has ponderado. La organización del repo también está bien.
Sólo las cosas que te cuento un poco más arriba. Cualquier cosa me dices.
Seguimos Edu!! 💪
https://github.com/EduMartinezGarrido/Geospatial_data_project