Curso Completo de Streamlit
Introdução ao Streamlit
O que é Streamlit?
Streamlit é uma biblioteca Python open-source que permite criar aplicações web interativas para ciência de dados e machine learning de forma rápida e simples. Com Streamlit, você pode transformar scripts Python em aplicações web interativas em minutos.
Por que usar Streamlit?
- Fácil de aprender e usar
- Não requer conhecimento de frontend
- Integração perfeita com bibliotecas de data science
- Deploy simples
- Comunidade ativa
Instalação e Configuração
Requisitos
- Python 3.7+
- pip (gerenciador de pacotes Python)
Instalação
pip install streamlit
Primeiro App
import streamlit as st
st.title("Meu Primeiro App Streamlit")
st.write("Olá, mundo!")
Executando o App
streamlit run app.py
Componentes Básicos
Widgets Interativos
Texto e Títulos
st.title("Título Principal")
st.header("Cabeçalho")
st.subheader("Subcabeçalho")
st.text("Texto simples")
st.markdown("**Texto em Markdown**")
Inputs
# Texto
nome = st.text_input("Digite seu nome")
# Número
idade = st.number_input("Digite sua idade", min_value=0, max_value=120)
# Slider
valor = st.slider("Selecione um valor", 0, 100)
# Checkbox
aceito = st.checkbox("Eu aceito os termos")
# Selectbox
opcao = st.selectbox("Escolha uma opção", ["Opção 1", "Opção 2", "Opção 3"])
Exercício 1
Crie um formulário de cadastro com os seguintes campos:
- Nome
- Idade
- Gênero (selectbox)
- Termos de uso (checkbox)
Visualização de Dados
Gráficos com Streamlit
Gráfico de Linha
import pandas as pd
import numpy as np
# Dados de exemplo
dados = pd.DataFrame({
'data': pd.date_range('2024-01-01', periods=10),
'valor': np.random.randn(10).cumsum()
})
st.line_chart(dados.set_index('data'))
Gráfico de Barras
st.bar_chart(dados.set_index('data'))
Gráfico de Área
st.area_chart(dados.set_index('data'))
Exercício 2
Crie um dashboard que:
- Carregue um arquivo CSV
- Mostre as primeiras linhas do DataFrame
- Exiba um gráfico de linha com os dados
- Adicione um filtro por data
Layout e Estilização
Organização do Layout
# Colunas
col1, col2 = st.columns(2)
with col1:
st.write("Coluna 1")
with col2:
st.write("Coluna 2")
# Expansores
with st.expander("Clique para expandir"):
st.write("Conteúdo expandido")
# Sidebar
st.sidebar.title("Menu Lateral")
Estilização
st.markdown("""
<style>
.main {
background-color: #f0f2f6;
}
.stButton>button {
background-color: #4CAF50;
color: white;
}
</style>
""", unsafe_allow_html=True)
Exercício 3
Crie um dashboard com:
- Menu lateral com opções
- Duas colunas principais
- Expansores para informações detalhadas
- Estilização personalizada
Projeto Final
Aplicação de Análise de Dados
Objetivo
Criar uma aplicação completa que:
- Carregue dados de um arquivo CSV
- Permita filtros interativos
- Mostre diferentes visualizações
- Inclua métricas importantes
- Tenha um layout profissional
Código Base
import streamlit as st
import pandas as pd
import plotly.express as px
# Configuração da página
st.set_page_config(page_title="Dashboard de Análise", layout="wide")
# Título
st.title("Dashboard de Análise de Dados")
# Carregamento de dados
@st.cache_data
def load_data():
return pd.read_csv("dados.csv")
# Interface principal
df = load_data()
# Filtros
st.sidebar.header("Filtros")
filtro_categoria = st.sidebar.multiselect("Categoria", df['categoria'].unique())
# Visualizações
col1, col2 = st.columns(2)
with col1:
st.subheader("Gráfico de Barras")
fig = px.bar(df, x='categoria', y='valor')
st.plotly_chart(fig)
with col2:
st.subheader("Gráfico de Pizza")
fig = px.pie(df, values='valor', names='categoria')
st.plotly_chart(fig)
# Métricas
st.subheader("Métricas")
col1, col2, col3 = st.columns(3)
col1.metric("Total", df['valor'].sum())
col2.metric("Média", df['valor'].mean())
col3.metric("Máximo", df['valor'].max())
Exercício Final
Desenvolva uma aplicação Streamlit para análise de dados de vendas que inclua:
- Carregamento de dados
- Filtros interativos
- Múltiplas visualizações
- Métricas importantes
- Layout responsivo
- Documentação clara
Recursos Adicionais
Links Úteis
Próximos Passos
- Aprender sobre cache e performance
- Explorar componentes personalizados
- Implementar autenticação
- Fazer deploy da aplicação
Conclusão
Este curso forneceu uma base sólida para começar a desenvolver aplicações com Streamlit. Continue praticando e explorando as diversas funcionalidades disponíveis na biblioteca.
Lembre-se: A melhor maneira de aprender é praticando! Crie seus próprios projetos e experimente diferentes recursos do Streamlit.