Spaces:
Build error
Build error
import streamlit as st | |
import pandas as pd | |
import csv | |
st.image("images/ledesma-logo.png") | |
st.title('Demo monitoreo de precios') | |
st.markdown("*Creado para Ledesma*.") | |
st.write("Creamos este sistema para que puedas monitorear **activamente** los precios de tus productos y los de la competencia a lo largo del pais") | |
st.divider() | |
st.write("Para los propositos de esta demo, hemos seleccionado un producto de ledesma, con tres presentaciones distintas, y sus respectivos competidores dentro de la misma gama de productos") | |
st.header("Sucursales:") | |
st.write("Seleccionamos arbitrariamente algunas regiones del pais, e incluimos algunas cadenas de supermercados en cada una de ellas") | |
df = pd.read_csv("products.csv") | |
product_stores = pd.read_csv("Store-Products.csv") | |
stores = pd.read_csv("sucursales.csv") | |
provinces = stores['provincia'].unique() | |
provinces_dict = { | |
'Ciudad Autónoma de Buenos Aires': 'AR-C', | |
'La Rioja': 'AR-F', | |
'Santiago del Estero': 'AR-G', | |
'Catamarca': 'AR-K', | |
'Neuquén': 'AR-Q', | |
'Río Negro': 'AR-R', | |
'Santa Fe': 'AR-S', | |
'Tucumán': 'AR-T', | |
'Chubut': 'AR-U', | |
'Córdoba': 'AR-X', | |
'Santa Cruz': 'AR-Z' | |
} | |
provinces_dataframe = pd.DataFrame({ | |
'provincia':['AR-C','AR-K','AR-Q','AR-R','AR-S','AR-U'], | |
'provincia_nombre':['Ciudad Autónoma de Buenos Aires','Catamarca','Neuquén','Río Negro','Santa Fe','Chubut'] | |
}) | |
stores = pd.merge(stores,provinces_dataframe, on='provincia',how='inner') | |
provinces_list = ['Ciudad Autónoma de Buenos Aires','Catamarca','Neuquén','Río Negro','Santa Fe','Chubut'] | |
sucursales_seleccionadas = st.multiselect('Selecciona provincias de interes', provinces_list) | |
for sucursal_seleccionada in sucursales_seleccionadas: | |
#st.write(f'**{sucursal_seleccionada}**') | |
province_code = provinces_dict[sucursal_seleccionada] | |
stores_selected = stores[stores['provincia']==province_code] | |
stores_selected = stores_selected[['banderaDescripcion','direccion', 'localidad']] | |
stores_selected.columns = ['Marca','Direccion', 'Localidad'] | |
province_codes = [provinces_dict[sucursal_seleccionada] for sucursal_seleccionada in sucursales_seleccionadas] | |
selected_provinces = stores[stores['provincia'].isin(province_codes)] | |
st.map(selected_provinces,latitude='lat', longitude='lng') | |
st.divider() | |
st.image("images/ledesma50u.png") | |
store_codes = selected_provinces['sucursalId'].tolist() | |
# Seleccion de productos por provincia | |
product_stores_filtered = product_stores[product_stores['id_sucursal'].isin(store_codes) & (product_stores['presentacion_producto'] == '50.0 un')] | |
product_stores_filtered.rename(columns={'id_sucursal': 'sucursalId'}, inplace=True) | |
product_stores_filtered = pd.merge(product_stores_filtered, stores, on='sucursalId', how='inner') | |
#filtrado de vuelta porque aparentemente las referencias de los storesids estan repetidas entre tiendas de distintas provincias | |
product_stores_filtered = product_stores_filtered[product_stores_filtered['provincia'].isin(province_codes)] | |
st.write(product_stores_filtered) | |
st.header("Comparacion de precios") | |
st.bar_chart(product_stores_filtered,x='provincia_nombre',y='precio_lista',color='nombre_producto', stack=False) |