Conceito: sera mapeado as colunas que ainda não possuem filtros e aplicar a lógica correta de componentes (widgets) do Streamlit, filtros dinâmicos são pontes entre a interface do usuário e o motor de dados (Pandas). Eles transformam uma interação visual
Implementação do Código
--- Adicionando filtros na Barra Lateral ---
st.sidebar.title('Filtros')
1. Filtro de Texto (Local da Compra)
with st.sidebar.expander('Local da compra'):
local_compra = st.multiselect(
'Selecione o local da compra',
dados['Local da compra'].unique(),
dados['Local da compra'].unique()
)
2. Filtro Numérico (Avaliação da Compra)
with st.sidebar.expander('Avaliação da compra'):
avaliacao = st.slider(
'Selecione a avaliação da compra',
1, 5, value=(1, 5)
)
3. Filtro de Texto (Tipo de Pagamento)
with st.sidebar.expander('Tipo de pagamento'):
tipo_pagamento = st.multiselect(
'Selecione o tipo de pagamento',
dados['Tipo de pagamento'].unique(),
dados['Tipo de pagamento'].unique()
)
4. Filtro Numérico (Quantidade de Parcelas)
with st.sidebar.expander('Quantidade de parcelas'):
qtd_parcelas = st.slider(
'Selecione a quantidade de parcelas',
1, 24, (1, 24)
)
Integração na Query
query = '''
Produto in @produtos and Categoria do Produto in @categoria and
@preco[0] <= Preço <= @preco[1] and
@frete[0] <= Frete <= @frete[1] and
@data_compra[0] <= Data da Compra <= @data_compra[1] and
Vendedor in @vendedores and Local da compra in @local_compra and
@avaliacao[0] <= Avaliação da compra <= @avaliacao[1] and Tipo de pagamento in @tipo_pagamento and
@qtd_parcelas[0] <= Quantidade de parcelas <= @qtd_parcelas[1]
'''
dados_filtrados = dados.query(query)