Analisando 100 mil pedidos do Olist com Python, Pandas e Machine Learning
Análise de 100 mil pedidos reais do marketplace Olist usando Python, Pandas, K-Means para segmentação RFM e cohort analysis — publicado como HTML estático no Cloudflare Pages.
O Radar Econômico Brasil usa stlite e Pyodide para rodar Python + Streamlit 100% no browser via WebAssembly. Monitora SELIC, IPCA, câmbio e faz previsões com ML — hospedado como HTML estático no Cloudflare Pages.
O Radar Econômico Brasil é um dashboard de inteligência econômica que consolida os principais indicadores financeiros do país em tempo real — diretamente da API do Banco Central do Brasil — com visualizações interativas e previsões com machine learning.
Acesse em: radareconomicobr.catiteo.com
A parte mais fascinante do projeto é que toda a aplicação roda no browser do usuário — sem nenhum servidor backend. Como? Usando stlite + Pyodide: Python compilado para WebAssembly.
O fluxo é simples:
index.html com o stlite via CDN<!-- index.html — apenas isso é necessário no servidor -->
<script src="https://cdn.jsdelivr.net/npm/@stlite/[email protected]/build/stlite.js"></script>
<script>
stlite.mount({
requirements: ["plotly", "pandas", "numpy", "scikit-learn"],
entrypoint: "streamlit_app.py",
});
</script>
O resultado: um dashboard completo hospedado como arquivos estáticos no Cloudflare Pages — sem custo de servidor, sem cold start, sem manutenção de backend.
Todos os dados vêm da API SGS (Sistema Gerenciador de Séries Temporais) do Banco Central — pública, sem autenticação, com retorno em JSON:
| Indicador | Série BCB | Frequência |
|---|---|---|
| Taxa SELIC | 432 | Diária |
| IPCA | 433 | Mensal |
| IGP-M | 189 | Mensal |
| USD/BRL | 1 | Diária |
| EUR/BRL | 21619 | Diária |
5 cartões de métricas com valor atual e variação percentual. Gauges visuais para SELIC e IPCA. Gráfico de comparação normalizada de todos os indicadores no mesmo eixo. Exportação para CSV.
Histórico completo da SELIC com médias móveis configuráveis (SMA/EMA). Gráfico dual-eixo para USD/BRL e EUR/BRL.
Barras de IPCA e IGP-M com código de cores por intensidade. Cálculo de acumulado 12 meses. Heatmap sazonal mostrando padrões mensais de inflação por ano.
Matriz de correlação com três métodos: Pearson, Spearman e Kendall. Scatter plots entre pares de indicadores.
Regressão linear com período de treino configurável pelo usuário (5 a 60 períodos futuros). Exibe R² e RMSE. Projeções exportáveis em CSV.
from sklearn.linear_model import LinearRegression
import numpy as np
def forecast(series: pd.Series, periods: int) -> np.ndarray:
X = np.arange(len(series)).reshape(-1, 1)
y = series.values
model = LinearRegression().fit(X, y)
future_X = np.arange(len(series), len(series) + periods).reshape(-1, 1)
return model.predict(future_X)
Linguagem: Python 3.11
UI: Streamlit 1.38
Browser: stlite 0.63.0 + Pyodide 0.25 (WebAssembly)
Visualização: Plotly 5.x
Dados: Pandas 2.x + NumPy 1.x
ML: scikit-learn 1.x
Deploy: Cloudflare Pages (arquivos estáticos)
CI/CD: GitHub Actions
Por rodar 100% no browser como arquivos estáticos, o deploy no Cloudflare Pages é gratuito. A API do Banco Central é pública. Não há servidor, banco de dados ou fatura no final do mês.
WebAssembly está maduro para análise de dados. O stlite inicializa em 3–5 segundos e roda Pandas, NumPy e scikit-learn sem problema. Para dashboards analíticos onde a latência inicial é aceitável, é uma arquitetura excelente.
A API do Banco Central é subestimada. Centenas de séries temporais, dados históricos desde os anos 80, atualizações diárias — completamente gratuita e sem autenticação.
Código disponível no GitHub.
Thiago Albuquerque de Paula
Desenvolvedor Full Stack com mais de 10 anos de experiência, especializado em Java, Quarkus e PHP/Laravel. Trabalho com sistemas críticos na Minsait/Indra e sou apaixonado por DevOps, automação de processos e arquitetura de software.
Receba novos posts diretamente no seu email.
Carregando comentários...
Análise de 100 mil pedidos reais do marketplace Olist usando Python, Pandas, K-Means para segmentação RFM e cohort analysis — publicado como HTML estático no Cloudflare Pages.
Uma coleção de ferramentas para desenvolvedores construída com Next.js 15 App Router: formatadores, codificadores, geradores e conversores em um só lugar.
Um gerenciador de snippets de código construído com SvelteKit 2 e Svelte 5, explorando a nova API de reatividade chamada Runes.