Closed asiokfd closed 3 years ago
Las funciones están sin referenciar, no me funcionaban, me daba problemas con las librerias, aún poniendo los imports dentro de la función, dentro del archivo de funciones... en todos lados
Hola Alberto! 🙋🏻♂️
Te voy comentando, averquénossale:
Respecto a la organización del repositorio 📚
El README.md ✍🏻:
Respecto al código 👩💻:
En los jupyters:
El JSON_normalize aplana un json y lo convierte a dataframe. Te dejo este enlace, que lo explica mucho mejor que yo: https://towardsdatascience.com/all-pandas-json-normalize-you-should-know-for-flattening-json-13eae1dfb7dd
sería así:
data = [{'id': 1, 'name': {'first': 'Coleen', 'last': 'Volk'}},
{'name': {'given': 'Mose', 'family': 'Regner'}},
{'id': 2, 'name': 'Faye Raker'}]
pd.json_normalize(data)
Para estas funciones:
starsfan=gmaps.places_nearby(
location = sfan["coordinates"],
radius = 200,
name = "Starbucks"
)
has hecho tres párrafos de código iguales. Lo único que te cambia es el Starbucks y la ciudad. Eso lo puedes meter en una función y parametrizar para que te reciba esos dos argumentos y ejecutar la función tres veces.
Una vez que tengas tu código en archivos.py, tienes que importarlo en jupyter, por lo que sustituyes las funciones que tengas definidas dentro del notebook por las que has importado. Vamos, que no tienes que tener funciones definidas en el notebook si ya las importas desde otro sitio.
Para esta función:
dfpuntuacion["Ubicacion"]= ["San_Francisco", "Brooklyn", "London"]
dfpuntuacion["Densidad_Starbucks_200mtr"]= [len (starsfan["results"]),len (starsbkyn["results"]),len (starslond["results"])]
dfpuntuacion["Densidad_Bares_1000mtrs"]= [len (partysfan["results"]),len (partybkyn["results"]),len (partylond["results"])]
dfpuntuacion["Densidad_Veganos_1000mtrs"]= [len (veganssfan["results"]),len (vegansbkyn["results"]),len (veganslond["results"])]
dfpuntuacion["Densidad_Colegios_1500mtrs"]= [len (nenesfan["results"]),len (nenesbkyn["results"]),len (neneslond["results"])]
dfpuntuacion["Radio_para_encontrar_10_coles"]= [radio_nenes_sfan, radio_nenes_bkyn, radio_nenes_lond]
intenta refactorizarlo 🙏; con un bucle podrías hacerlo.
Cuando dices "# no lo he hecho función porque el key "Category" lo voy a rellenar a mano":
dicparty = []
for dic in decodeparty2lond:
paralista = {}
paralista["Name"] = getFromDict(dic, mapa_nombre)
paralista["latitud"]= getFromDict(dic, mapa_latitud)
paralista["longitud"] = getFromDict(dic,mapa_longitud)
paralista["Rating"] = getFromDict (dic, mapa_rating)
paralista["Category"]= "Bares_pubs"
dicparty.append(paralista)
puedes hacerlo función y eso que pasas a mano sería con lo que llamarías a la función, ¿no? (o no te he entendido?)
Recuerda limitar los outputs: tanto de los jsons como de los
Está súper bien que hayas ido poniendo títulos y aclaraciones en el código.
Si te he seguido bien el hilo (aprovecha y numera los títulos de los pasos grandes que vayas haciendo), has:
Si no es así, corrígeme porfa.
En general, tienes mucho código que se repite y que se puede modularizar para no repetirlo. Te recomendaría también:
PD: Acabo de re-leer esto que me ponías: "Las funciones están sin referenciar, no me funcionaban, me daba problemas con las librerias, aún poniendo los imports dentro de la función, dentro del archivo de funciones... en todos lados". No acabo de entender a qué te refieres. ¿no se te importaban en jupyter y por eso las tienes definidas dentro del notebook?
Te pongo estas cosas para mejorar porque somos muy pesados, pero veo que le has echado trabajo; y has cumplido con lo que se te pedía, que era tomar decisiones basadas en datos 💪
https://github.com/asiokfd/Proyecto3