Streamlit: A maneira mais rápida de construir aplicativos de dados em Python
Introdução
Streamlit é uma biblioteca Python de código aberto projetada para permitir que cientistas de dados e engenheiros de aprendizado de máquina criem aplicativos da Web bonitos e interativos de forma rápida e fácil. Ele simplifica o processo de transformar scripts de ciência de dados em aplicativos da Web compartilháveis, sem a necessidade de experiência em desenvolvimento front-end.
Conceitos Principais:
- Abrace os scripts Python: O Streamlit permite que você construa aplicativos usando scripts Python puros, sem a necessidade de escrever HTML, CSS ou JavaScript.
- Atualizações em tempo real: Os aplicativos Streamlit são atualizados automaticamente sempre que você modifica o código e salva, permitindo iteração e experimentação rápidas.
- Simples e fácil de usar: O Streamlit oferece uma API intuitiva que facilita a adição de vários elementos de UI, como texto, gráficos, controles deslizantes, botões, etc.
- Orientado a dados: O Streamlit é projetado especificamente para fluxos de trabalho de ciência de dados, facilitando a exibição e manipulação de dados.
- Sem necessidade de experiência em front-end: O Streamlit abstrai a complexidade do desenvolvimento front-end, permitindo que você se concentre em dados e modelos.
Informações do Repositório do Projeto
- Repositório GitHub: https://github.com/streamlit/streamlit
- Linguagem de programação principal: Python
- Licença: Apache License 2.0
- Stars: Mais de 23 mil (em 26 de janeiro de 2024)
- Forks: Mais de 2 mil (em 26 de janeiro de 2024)
- Contribuidores: Mais de 300
Principais Características
- API simples e fácil de usar: O Streamlit oferece uma API concisa para criar vários elementos de UI, como:
st.write()
: Exibe texto, dados, gráficos, etc.
st.slider()
: Cria um controle deslizante.
st.button()
: Cria um botão.
st.selectbox()
: Cria uma caixa de seleção suspensa.
st.dataframe()
: Exibe um DataFrame do Pandas.
st.line_chart()
: Exibe um gráfico de linhas.
st.map()
: Exibe um mapa.
st.file_uploader()
: Envia arquivos
- Execução automática: Os aplicativos Streamlit são executados automaticamente sempre que você modifica o código e salva, permitindo iteração rápida.
- Cache: O Streamlit possui um mecanismo de cache integrado que pode armazenar em cache os resultados dos cálculos, melhorando o desempenho do aplicativo. Use o decorador
@st.cache_data
para armazenar em cache os resultados da função.
- Estado da sessão: O Streamlit permite que você gerencie o estado do aplicativo usando
st.session_state
, permitindo que você crie aplicativos interativos mais complexos.
- Componentes: O Streamlit suporta componentes personalizados, permitindo que você estenda a funcionalidade do Streamlit e integre bibliotecas de terceiros.
- Temas: O Streamlit permite que você personalize a aparência do seu aplicativo, incluindo cores, fontes, etc.
- Implantação: Os aplicativos Streamlit podem ser facilmente implantados em várias plataformas, como Streamlit Community Cloud, Heroku, AWS, Google Cloud, etc.
- Suporte da comunidade: O Streamlit tem uma comunidade ativa que fornece documentação, tutoriais e exemplos abrangentes.
Módulos e Funcionalidades Principais
- streamlit: A biblioteca principal, contendo a API para construir aplicativos.
- streamlit.components.v1: A API para criar componentes personalizados.
- streamlit.config: Usado para configurar o comportamento do aplicativo Streamlit.
- streamlit.delta_generator: A API para gerar elementos de UI.
- streamlit.runtime: O ambiente de tempo de execução do aplicativo Streamlit.
- streamlit.web: O servidor Web do aplicativo Streamlit.
Casos de Uso
O Streamlit pode ser usado para construir vários aplicativos de dados, como:
- Visualização de dados: Crie gráficos e painéis interativos para explorar e analisar dados.
- Implantação de modelos de aprendizado de máquina: Implante modelos de aprendizado de máquina como aplicativos da Web para que os usuários possam interagir com os modelos.
- Exploração de dados: Construa ferramentas interativas para explorar e entender os dados.
- Anotação de dados: Crie ferramentas de anotação de dados para ajudar a anotar dados.
- Educação e demonstração: Crie demonstrações interativas para mostrar conceitos e técnicas de ciência de dados.
- Ferramentas internas: Construa ferramentas de dados internas para melhorar a eficiência da equipe.
Código de Exemplo
Aqui está um exemplo simples de aplicativo Streamlit:
import streamlit as st
import pandas as pd
import numpy as np
st.title('Meu Primeiro Aplicativo Streamlit')
st.write('Olá, mundo!')
# Cria um DataFrame
data = pd.DataFrame({
'col1': [1, 2, 3, 4],
'col2': [5, 6, 7, 8]
})
# Exibe o DataFrame
st.write('Aqui está um DataFrame:')
st.dataframe(data)
# Cria um controle deslizante
x = st.slider('Selecione um valor para x', 0, 100, 50)
# Exibe o valor do controle deslizante
st.write('O valor de x é:', x)
# Cria um gráfico de números aleatórios
chart_data = pd.DataFrame(
np.random.randn(20, 3),
columns=['a', 'b', 'c'])
st.line_chart(chart_data)
Instalação
Você pode instalar o Streamlit usando pip:
pip install streamlit
Execução
Para executar um aplicativo Streamlit, execute o seguinte comando na linha de comando:
streamlit run seu_app.py
Onde seu_app.py
é o arquivo Python do seu aplicativo Streamlit.
Vantagens
- Desenvolvimento rápido: O Streamlit permite que você construa aplicativos de dados rapidamente, sem a necessidade de escrever muito código.
- Fácil de usar: O Streamlit oferece uma API intuitiva que facilita a adição de vários elementos de UI.
- Interatividade: Os aplicativos Streamlit são interativos, permitindo que os usuários interajam com os dados.
- Implantabilidade: Os aplicativos Streamlit podem ser facilmente implantados em várias plataformas.
- Suporte da comunidade: O Streamlit tem uma comunidade ativa que fornece documentação, tutoriais e exemplos abrangentes.
Desvantagens
- Personalização limitada: A personalização do Streamlit é relativamente limitada e pode não atender a todos os requisitos do aplicativo.
- Desempenho: Para aplicativos complexos, o desempenho do Streamlit pode não ser tão bom quanto o de estruturas da Web tradicionais.
- Controle front-end mais fraco: Não é possível controlar a UI tão finamente quanto com as estruturas front-end tradicionais.
Resumo
Streamlit é uma ferramenta poderosa que pode ajudar cientistas de dados e engenheiros de aprendizado de máquina a construir aplicativos da Web bonitos e interativos de forma rápida. Ele simplifica o processo de transformar scripts de ciência de dados em aplicativos da Web compartilháveis, sem a necessidade de experiência em desenvolvimento front-end. Embora tenha algumas limitações em termos de personalização e desempenho, sua facilidade de uso e capacidade de desenvolvimento rápido o tornam uma escolha ideal para muitos projetos de ciência de dados.