Closed CristinaCallejo closed 3 years ago
Holaaaaa Cris 🙋♀️. Vamos a por el proyecto de este finde! 🔥🔥
¿!¿!¿!Qué ha pasado con el readme?!?!?!!? EL principal objetivo del readme es una guía rápida para los que van a ver tu proyecto y para saber como usar tu código. Tips importantes para esta parte del proyecto, que vaya al grano, sea conciso y muy muy claro.
Es lo que la gente va a ver de ti y de tu proyecto!
Vamos con la estructura, en general esta perfecta:
.gitignore
👏👏Como tienes hecha la query esta perfecta. Por si te aporta valor, puedes usar el unwind
de mongo que te permitirá separar todos los documentos que tengan distintas oficinas (es como el explode
que usaste en pandas), de esta forma te puede evitar eliminar aquellas oficinas que no sean de Europa.
Las funciones de import_csv
y export_df_to_csv
están perfectas, pero... crear una función para acciones que tienen sus propios métodos (read_csv
o to_csv
) no tiene mucho sentido.
Vamos con la llamada a la API de foursquare, como lo tienes esta bien. Te dejo por aqui algunos tips por si te aportan valor:
Puedes crearte una lista con los parámetros que buscas en foursquare:
criteria = [airport, pre , private, middle , elem, cocktail_bar, music_venu, food]
#sobre esta lista ya puedes iterar despues usando la función que te creaste
for i in criteria:
response = req_from_foursq(city, i)
De esta forma atomizas código, y no tienes que llamar a la función 4 veces generando 4 dataframes que luego tienes que concatenar.
Otra forma es usar diccionarios donde las keys
sean las diferentes ciudades que quieras incluir en tu proyecto y los values la lista de los criterios.
Cuando creas los geoloc convirtiendo a geopandas y shapely, suuuper bien. Este código se podría meter también una función y no tendrías que repetir el código muchas veces. Te dejo por aquí una posible opción de código:
def create_geoloc(path_csv):
df = pd.read_csv(path_csv)
gdf = gdp.GeoDataFrame(df, geometry= gdp.points_from_xy(df.longitud, df.latitud ))
gdf.columns=['name', 'lat','long','category','loc' ]
gdf['loc']= gdf['loc'].apply(lambda x:shapely.geometry.mapping(x))
return gdf
E incluso en esta misma función puedes meter el código para crear las distintas colecciones en mongo que tienes que esta perfecto!
Lo mismo cuando haces las geoqueries, si metes todo tu código en una función simplificas más tu código y evitas repeticiones 😉😉
El mapita de tu repo, no me sale con tus localidades, es el de los crímenes … tendrás tu mapita bonito por ahí.
Conclusiones de tus resultados siendo data analysts tenemos que garantizar que las decisiones que tomamos se basan en datos, en tu caso me ha faltado que me dieras datos de donde tengo que poner la empresa.
Al readme dale duro para que te quede el proyecto bien presentado.
Atomizar algunas partes del código para evitar repetir nuestro código para cualquier ciudad. Imagina que dentro de un mes el número de ciudades el 20... un poco tedioso hacer este proceso. Las funciones son nuestras mejores amigas!
En general Cris, en este proyecto te has peleado con mongo, con pandas, y con geoqueries, has tomando todas las decisiones necesarias para arrancar tu nuevo trabajo!!! Además las decisiones que tomaste todas basadas en datos. Buen trabajo Cris.
The link to my awesome repo is: here ⬅️ 🔥