File size: 3,208 Bytes
9f36753
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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)