LeonardoDPantoja / Final_Project

MIT License
0 stars 2 forks source link

Comentarios sobre proyecto final #5

Open vcuspinera opened 10 months ago

vcuspinera commented 10 months ago

Hola, Larisa (@LLop8029), Daniel (@disita) y Leonardo (@LeonardoDPantoja): De forma global veo bien su proyecto: el repositorio del proyecto tiene la estructura adecuada, realizaron el análisis en dos Jupyter notebooks, compartieron la liga del proyecto en el repositorio del curso, agregaron Issues con las ligas de divulgación de su proyecto a través de X y LinkedIn, y cumplieron con la fecha de entrega. A continuación comparto mis comentarios, con mayor detalle, para algunas secciones.

Estructura del repositorio

La estructura es adecuada de acuerdo a las recomendaciones del paper Good Enough Practices in Scientific Computing.

En el README principal faltó compartir un resumen con los resultados más relevantes que obtuvieron de su proyecto, esto para que llame la atención del lector; de preferencia utilizando imágenes, por ejemplo, incluir la nube de palabras o alguno(s) de los mapas por estado que tienen en el documento de resultados. Además podrían haber incluido la liga directa al markdown de los resultados y de su análisis en los Jupyter notebook.

En la carpeta src hay tres Jupyter notebooks pero en el README de esa carpeta no se describe qué tiene cada notebook y/o el orden en que se deberían de abrir y correr. Recomendaría que incluyeran algo de esto para que sea más fácil su lectura y revisarlos en el orden correcto.

Análisis

Corrí el código de sus notebooks para buscar replicar tus resultados y estos son los comentarios que fueron surgiendo a lo largo de correr el código:

Jupyter notebook Web scrapping & wordcloud.ipynb Al final de este archivo, al usar la máscara para el wordcloud, faltó poner de forma adecuada la ubicación del archivo “Coppel7.png”:

mask = np.array(Image.open('../doc/Coppel7.png').resize((800, 400)))

Jupyter notebook Altair.ipynb El data frame data_venta, el cual se obtiene antes de la primer gráfica, no tiene la columna suma. Para poder correrlo estoy suponiendo que esta suma corresponde a los valores de las columnas “dic-22” a “ene-22”. Para obtener este valor añadí el siguiente código, espero sea lo correcto:

data_venta['suma'] = data_venta.iloc[:,4:].sum(axis=1)

En las gráficas recomendaría usar la opción de tooltips para que fuera interactivas y poder identificar los datos al poner el cursor sobre una barra o punto de la gráfica.

Al llamar la segunda base de datos, marca error ya que faltó poner la ubicación correcta del archivo. Es decir, en vez de:

data_gasto=pd.read_csv('Datos_Gastos_Tiendas.csv', encoding='latin-1')

…deberían de usar el siguiente código:

data_gasto=pd.read_csv('../data/Datos_Gastos_Tiendas.csv', encoding='latin-1')

Para las gráficas de gasto, al igual que para las ventas, no aparece la columna suma, por lo que la obtuve con la siguiente fórmula:

data_gasto['suma'] = data_gasto.iloc[:,5:].sum(axis=1)

En la gráfica de “Creación de un histograma con marcador de promedio anual con Altair.”, se manda a llamar la variable ganancia; sin embargo, en el data frame data_venta no aparece esta columna.

En el data frame data_venta aparecen las siguientes columnas:

'Estado / Canal', 'Ciudad', 'coordenadas', 'Tienda', 'dic-22', 'nov-22',
'oct-22', 'sep-22', 'ago-22', 'jul-22', 'jun-22', 'may-22', 'abr-22',
'mar-22', 'feb-22', 'ene-22', 'suma'

…por lo que al correr el siguiente código aparece un error dado que en el dataframe no se tienen algunas de las siguientes columnas:

#Creación de dataframe con los datso necesarios de diferentes base de datos.
conjunto=pd.DataFrame({
    'Tienda':(data_venta['Tienda']),
    'Tipo':(data_venta['Tipo']),
    'Ventas':(data_venta['suma']),
    'Ganancia':(data_venta['ganancia']),
    'Gasto_Telecom':(data_gasto['suma'])
})

Por lo anterior no se pudieron replicar las gráficas que procedían en el resto del documento. Recordar que parte importante de realizar un proyecto es que cualquier lector o usuario pueda replicar el mismo análisis lo más fácilmente posible.

Jupyter notebook GeoPandas & Folium Maps.ipynb Al inicio del archivo, la ruta para llamar la base de datos utilizada para este notebook no es correcta, dice:

file_path = '3. Data/Datos_Estados.csv'

…pero lo correcto sería:

file_path = '../data/Datos_Estados.csv'

Lo anterior sucede también al mandar a llamar los archivos Datos_Localidad.csv, Datos_Gastos_Tiendas.csv, Datos_Ventas_Tiendas.csv.

Sobre los mapas, en general me gustaron mucho, completos y autodescriptivos. Recomendaría que se explicara un poco más los resultados del análisis visual, por ejemplo, en el mapa de ingresos por estado se observa que los estados con mayores ingresos están principalmente en el norte del país (NL, BC, BCS y SON) y centro (CDMX, EDOMEX e HGO).

Comentarios finales

Me pareció interesante el análisis. Identifiqué que utilizaron cinco de seis herramientas vistas en la segunda parte del curso de desarrollo de proyectos I: consultar información en el web usando un scraper, preprocesamiento de datos con NLTK, herramientas de texto como wordclouds, gráficas interactivas con Altair y mapas con GeoPandas. Las visualizaciones me parecieron muy buenas, sobre todo los mapas los cuales son completos y autodescriptivos. ¡Muy buen esfuerzo, muchas felicidades!

Saludos, Víctor Cuspinera