0
respostas

[Projeto] 05 Desafio: adicionando input widgets

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)