Skip to content

Streamlit AgGrid: Desvendando o Poder da Visualização de Dados

No campo da análise e visualização de dados, ferramentas que simplificam o processo e aprimoram o resultado estão sempre em alta demanda. Uma dessas ferramentas que vem causando impacto na comunidade Python é o Streamlit AgGrid. Essa poderosa ferramenta combina a simplicidade do Streamlit com a versatilidade do AgGrid, fornecendo uma plataforma amigável para a criação de aplicações interativas de dados. Neste artigo, mergulharemos no mundo do Streamlit AgGrid, explorando seus recursos, processo de instalação, opções de personalização e aplicações práticas.

Você já ouviu falar dessa incrível ferramenta de análise e visualização de dados, que transforma seu aplicativo Streamlit em um Tableau?

PyGWalker (opens in a new tab) é uma biblioteca Python que ajuda você a incorporar facilmente uma interface semelhante ao Tableau em seu próprio aplicativo Streamlit sem esforço.

PyGWalker para visualização de dados no Streamlit (opens in a new tab)

Compreendendo o Streamlit AgGrid

O que é o Streamlit AgGrid?

O Streamlit AgGrid é um sistema de grade de código aberto projetado para aplicações web em Python. Foi criado por Pablo Fonseca e é baseado no AgGrid, um sistema de grade baseado em JavaScript conhecido por sua velocidade e facilidade de uso. O Streamlit AgGrid traz o poder do AgGrid para o Streamlit, uma framework popular para criação de aplicativos de aprendizado de máquina e ciência de dados web. O resultado é uma ferramenta que não apenas simplifica a visualização de dados, mas também aprimora a experiência geral do usuário.

Como o Streamlit AgGrid funciona?

No seu núcleo, o Streamlit AgGrid é um sistema de grade baseado em JavaScript. Isso significa que ele opera usando código JavaScript, que é integrado ao Python por meio da biblioteca JsCode. Essa biblioteca permite o uso de código JavaScript dentro da grade, proporcionando um alto nível de flexibilidade e personalização.

O Streamlit AgGrid funciona criando um objeto GridOptionsBuilder, que é configurado com um dataframe lido de um arquivo CSV local. Esse objeto é então usado para decidir quais colunas são editáveis, se um checkbox é usado e se é permitida a seleção múltipla.

Recursos do Streamlit AgGrid

O Streamlit AgGrid vem com uma série de recursos empresariais. Ele permite a criação de gráficos e tabelas estilosas, melhorando o apelo visual dos seus dados. Um de seus recursos destacados é o GridOptionsBuilder. Essa ferramenta fornece configuração do AgGrid com vários métodos, incluindo configure_columns, configure_selection, configure_pagination e configure_grid_options. Esses métodos permitem um alto nível de personalização, permitindo que você adapte a grade às suas necessidades específicas.

Instalação e Personalização do Streamlit AgGrid

Instalando o Streamlit AgGrid

Colocar o Streamlit AgGrid em funcionamento em seu sistema é fácil. É tão simples quanto importar algumas bibliotecas específicas para criar uma tabela mutável e interativa. Aqui está um resumo rápido:

pip install streamlit-aggrid

Esses comandos devem ajudá-lo a começar com o Streamlit AgGrid. Mas lembre-se, o diabo está nos detalhes. Aprofundaremos o processo de instalação passo a passo e as bibliotecas necessárias na próxima seção deste artigo.

Personalizando o Streamlit AgGrid

O Streamlit AgGrid não é apenas uma solução única. É uma ferramenta que você pode ajustar e adaptar às suas necessidades únicas. Quer alterar as propriedades de fundo das colunas ou células? Sem problemas! Você pode fazer isso adicionando código JavaScript ao código Python.

Aqui está um exemplo rápido:

from streamlit_aggrid import AgGrid, JsCode
 
js_code = JsCode("""
function(params) {
    if (params.value > 0) {
        return {backgroundColor: 'green'}
    } else {
        return {backgroundColor: 'red'}
    }
}
""")
 
gridOptions = {
    'columnDefs': [
        {'headerName': "Valor", 'field': "valor", 'cellStyle': js_code},
    ],
    ...
}
 
AgGrid(df, gridOptions=gridOptions)

Neste exemplo, estamos usando a biblioteca JsCode, que permite o uso de código JS na Grade. Isso nos permite alterar a cor de fundo da célula com base no valor da célula.

Guia Prático para Usar o Streamlit AgGrid

Usando o Streamlit AgGrid com Seus Dados

Depois de instalar e personalizar o Streamlit AgGrid, é hora de colocá-lo para trabalhar. Isso envolve a criação do objeto Ag Grid e torná-lo visível na tela. Aqui está um exemplo rápido:

from streamlit_aggrid import AgGrid
 
df = pd.DataFrame(
    np.random.randint(-100, 100, size=(100, 10)),
    columns=list('ABCDEFGHIJ'))
 
AgGrid(df)

Neste exemplo, estamos criando um DataFrame com valores aleatórios e exibindo-o usando o AgGrid. Depois que o usuário fizer as alterações necessárias, o dataframe atual no AgGrid pode ser obtido usando a função get_data.

Exemplos e Tutoriais do Streamlit AgGrid

Para entender verdadeiramente o poder e a versatilidade do Streamlit AgGrid, é útil vê-lo em ação. Nas seções a seguir, vamos percorrer exemplos práticos de uso do Streamlit AgGrid, desde a criação de tabelas interativas até a visualização de conjuntos de dados complexos. Também forneceremos tutoriais para iniciantes, garantindo que você tenha todo o conhecimento e habilidades necessárias para aproveitar ao máximo essa ferramenta poderosa.

Vamos dar uma olhada nesses exemplos:

Exemplo 1. Criar uma tabela interativa básica

No primeiro exemplo, vamos usar o Streamlit AgGrid para criar uma tabela interativa.

from st_aggrid import AgGrid
import pandas as pd
 
# Carregue os dados em um DataFrame do pandas
df = pd.read_csv('your_dataset.csv')
 
# Exiba o DataFrame em uma tabela AgGrid
AgGrid(df)

Exemplo 2: Visualização de conjuntos de dados complexos

Vamos trabalhar com um conjunto de dados de amostra e demonstrar como criar gráficos e gráficos interativos com base nos dados exibidos na tabela AgGrid.

import streamlit as st
from st_aggrid import AgGrid
import pandas as pd
import plotly.express as px
 
# Carregue os dados em um DataFrame do pandas
df = pd.read_csv('your_dataset.csv')
 
# Exiba o DataFrame em uma tabela AgGrid
table = AgGrid(df)
 
# Obtenha os dados atualizados da tabela
updated_data = table['data']
 
# Crie um gráfico com base nos dados atualizados
fig = px.bar(updated_data, x='column1', y='column2')
 
# Exiba o gráfico
st.plotly_chart(fig)

Exemplo 3. Conectar-se a bancos de dados externos no Stramlit

Você também pode conectar o Streamlit AgGrid a bancos de dados externos, como Planilhas Google ou bancos de dados SQL. Você aprenderá como estabelecer uma conexão, recuperar dados do banco de dados e exibi-los em uma tabela AgGrid interativa. Também abordaremos técnicas para atualizar e persistir os dados de volta para o banco de dados, permitindo colaboração em tempo real e integração perfeita com fontes de dados externas.

from st_aggrid import AgGrid
import pandas as pd
import gspread
 
# Conecte-se ao Google Sheets
gc = gspread.service_account(filename='credentials.json')
sh = gc.open('your_google_sheet')
worksheet = sh.get_worksheet(0)
 
# Recupere os dados do Google Sheets em um DataFrame do pandas
data = worksheet.get_all_records()
df = pd.DataFrame(data)
 
# Exiba o DataFrame em uma tabela AgGrid
AgGrid(df)

Observe que os códigos fornecidos são exemplos simplificados e podem exigir modificações para se adequarem ao seu caso de uso específico, como adaptar os caminhos dos arquivos, credenciais ou configurações de API para corresponder ao seu ambiente.

O que mais você pode fazer com o Stramlit AGrid?

Streamlit AgGrid para visualização de dados

A visualização de dados está no cerne do Streamlit AgGrid. Com seus gráficos e tabelas elegantes, ele oferece uma maneira visualmente atraente de apresentar seus dados. Aqui estão algumas características:

  • Definições de coluna personalizáveis: você pode personalizar a aparência e o comportamento das colunas no Streamlit AgGrid.
  • Recursos interativos: o Streamlit AgGrid suporta recursos interativos como ordenação, filtragem e redimensionamento de colunas.

Streamlit AgGrid para conjuntos de dados grandes

Uma das principais vantagens do Streamlit AgGrid é sua capacidade de lidar com conjuntos de dados grandes. Isso o torna uma excelente ferramenta para análise e visualização de big data. Aqui estão algumas maneiras pelas quais o Streamlit AgGrid lida com conjuntos de dados grandes:

  • Renderização eficiente: o Streamlit AgGrid renderiza apenas as linhas que estão atualmente visíveis no viewport. Isso significa que ele pode lidar com conjuntos de dados grandes sem qualquer degradação de desempenho.
  • Operações do lado do servidor: o Streamlit AgGrid oferece suporte a operações do lado do servidor, como ordenação, filtragem e agrupamento. Isso permite lidar com conjuntos de dados grandes que não caberiam na memória do navegador.

Streamlit AgGrid para aplicações web

O Streamlit AgGrid não é apenas para análise de dados, também é uma poderosa ferramenta para o desenvolvimento de aplicações web. Seu sistema de grid baseado em JavaScript integra-se perfeitamente às aplicações web em Python, fornecendo uma plataforma amigável para a criação de aplicações de dados interativas. Seja construindo um painel de análise de dados ou uma aplicação web completa, o Streamlit AgGrid pode ser uma adição valiosa ao seu conjunto de ferramentas.

Streamlit AgGrid para aprendizado de máquina e análise de dados

O Streamlit AgGrid também é uma ferramenta valiosa no campo do aprendizado de máquina e análise de dados. Sua capacidade de lidar com conjuntos de dados grandes e criar visualizações interativas torna-o uma excelente escolha para essas aplicações. Aqui estão algumas maneiras pelas quais você pode usar o Streamlit AgGrid no aprendizado de máquina e análise de dados:

  • Análise exploratória de dados (EDA): os recursos interativos do Streamlit AgGrid o tornam uma ótima ferramenta para EDA.
  • Seleção de recursos: você pode usar o Streamlit AgGrid para visualizar a importância de diferentes recursos em seu conjunto de dados.
  • Avaliação do modelo: o Streamlit AgGrid pode ser usado para visualizar o desempenho de diferentes modelos.

Alternativas ao Streamlit AgGrid

Embora o Streamlit AgGrid seja uma ferramenta poderosa, não é a única opção disponível para visualização de dados em Python. O PyGWalker (opens in a new tab) é outra ferramenta incrível que funciona como uma ótima alternativa ao Streamlit AgGrid.

Demo Online do PyGWalker + Streamlit (opens in a new tab)

PyGWalker (opens in a new tab) é uma biblioteca Python que ajuda você a incorporar facilmente uma interface semelhante ao Tableau em seu próprio aplicativo Streamlit sem esforço.

Confira este incrível vídeo produzido por Sven do Coding is Fun (opens in a new tab) demonstrando os passos detalhados para potencializar seu aplicativo Streamlit com esta poderosa Biblioteca de Visualização de Dados Python!


Agradecimentos especiais ao Sven e sua grande contribuição (opens in a new tab) para a comunidade do PyGWalker!

Além disso, você também pode conferir estes recursos:

Visualize dados no Streamlit com PyGWalker (opens in a new tab)

Além do PyGWalker, aqui estão algumas alternativas, cada uma com seus próprios pontos fortes e fracos:

  • Matplotlib: Uma biblioteca versátil para criar visualizações estáticas, animadas e interativas em Python.
  • Seaborn: Uma biblioteca de visualização de dados em Python baseada no Matplotlib. Ela fornece uma interface de alto nível para desenhar gráficos estatísticos atraentes e informativos.
  • Plotly: Uma biblioteca de gráficos que gera gráficos interativos e de alta qualidade para publicação.

Conclusão

O Streamlit AgGrid é uma ferramenta poderosa que combina a simplicidade do Streamlit com a versatilidade do AgGrid, fornecendo uma plataforma amigável para criar aplicações interativas de dados. Seja você um cientista de dados procurando visualizar conjuntos de dados complexos, um desenvolvedor web construindo aplicações interativas ou um engenheiro de aprendizado de máquina realizando análise exploratória de dados, o Streamlit AgGrid tem algo a oferecer. Sua capacidade de lidar com grandes conjuntos de dados, juntamente com seus recursos personalizáveis e facilidade de uso, o tornam uma excelente escolha para uma ampla gama de aplicações. Então, por que esperar? Mergulhe no mundo do Streamlit AgGrid e descubra o poder da visualização interativa de dados!

Perguntas Frequentes

O que é o Streamlit AgGrid?

O Streamlit AgGrid é um sistema de grade de código aberto projetado para aplicações web Python. Ele combina a simplicidade do Streamlit com a versatilidade do AgGrid, fornecendo uma plataforma amigável para criar aplicações interativas de dados.

Como tornar minha grade AgGrid responsiva?

Para tornar sua grade AgGrid responsiva, você pode usar a propriedade domLayout e defini-la como 'autoHeight'. Isso fará com que a altura da grade se ajuste automaticamente para se adequar ao seu conteúdo. Você também pode usar CSS para definir a largura e altura da grade em porcentagens, o que fará com que a grade redimensione com base no tamanho de seu contêiner.

Qual é a altura do filtro da grade Ag?

A altura do filtro da grade AgGrid não é fixa e pode ser ajustada de acordo com suas necessidades. Por padrão, o filtro exibirá linhas suficientes para caber o conteúdo sem rolagem. No entanto, você pode definir uma altura máxima para o filtro usando a propriedade maxDisplayedRows nos parâmetros do filtro.

O que é um componente Streamlit?

Componentes Streamlit são bibliotecas Python que permitem estender a funcionalidade do Streamlit. Eles podem ser usados para integrar com outras bibliotecas e frameworks JavaScript, criar novos tipos de visualizações ou adicionar novos elementos de interface do usuário. O Streamlit AgGrid é um exemplo de um componente Streamlit.