Como criar um painel em Python com o Jupyter Notebook?

By | Junho 14, 2022

Quer criar um painel de dados em 9 linhas de código Python? Mostrarei como criar um painel em Python com o Jupyter Notebook. O painel exibirá informações de ações para o ticker selecionado (tabela de dados e gráfico). O notebook será publicado como uma aplicação web. vou usar código aberto Mercury uma estrutura para converter notebooks Python em um aplicativo da Web interativo.

Painéis financeiros de demonstração criados em Python com Jupyter Notebook e lançados com Mercury:

Python Financial Dashboard com Jupyter Notebook

O painel está disponível online em dashboard-jupyter-notebook.herokuapp.com/ (Dino Heroku grátis). Repositório de código: github.com/pplonski/dashboard-python-jupyter-notebook.

Crie um painel com 9 linhas de código Python

Vamos começar criando um repositório vazio e clonando:

git clone [email protected]:pplonski/dashboard-python-jupyter-notebook.git

Configure um ambiente virtual:

virtualenv djenv
source djenv/bin/activate

eu escolho djenv como um nome para um ambiente virtual. Eu mantenho todos os pacotes necessários em requirements.txt Arquivo:

mljar-mercury
mplfinance
yfinance

o mljar-mercury é um pacote Python com Mercury estrutura. o mplfinance é um pacote para plotagem de dados financeiros usando matplotlib. o yfinance é um pacote para baixar dados de mercado da API do Yahoo Finance. Vamos instalar os pacotes necessários e configurar nosso ambiente como um kernel Jupyter:

pip install -r requirements.txt

# add kernel
python -m ipykernel install --user --name djenv

Temos um ambiente pronto, o próximo passo é lançar o Jupyter Notebook e criar um novo notebook. Não se esqueça de escolher um kernel com djenv name ao criar um novo notebook:

# starts Jupyter Notebook
jupyter notebook

Código em um notebook

Código que começamos a importar:

import yfinance as yf
import mplfinance as mpf

Os dados de estoque serão exibidos para o ticker selecionado. Vamos criar uma variável para isso:

Os dados de mercado para o ticker selecionado podem ser recuperados com 1 linha de código, graças ao incrível yfinance pacote:

history = yf.Ticker(ticker).history(period="3mo")

Podemos imprimir algumas estatísticas sobre os dados:

print(f"3 months low: {history.Low.min().astype(int)}")
print(f"3 months high: {history.High.max().astype(int)}")

Mostrar as últimas 5 linhas nos dados (últimos 5 dias de negociação):

o history a variável é Pandas DataFrame. Os dados financeiros podem ser facilmente desenhados mplfinance pacote:

mpf.plot(history, type='candle', mav=(7),figratio=(18,10))

Gráfico de velas com média móvel de 7 dias (1 linha de código):

Gráfico de velas financeiras com mplfinance

Todo o notebook está predefinido abaixo, possui apenas 9 linhas de código Python:

Captura de tela do código para criar um painel em Python com Jupyter Notebook

Compartilhe o painel com usuários não técnicos

Muito bem, os cadernos estão prontos. Você pode mudar ticker variável (por exemplo, defina como "MSFT") e execute um notebook para obter novas informações. No entanto, não é conveniente compartilhar um notebook com código, às vezes é impossível se seus usuários não forem técnicos e não puderem instalar o Python e os pacotes necessários. Por favor, não se preocupe! 😊 Existe um framework de código aberto chamado Mercury para transformar laptops Python em aplicativos da Web interativos. Você pode ocultar o código no notebook e mostrar apenas as saídas (tabela e gráfico). O aplicativo da web pode ser implantado na nuvem. Você compartilhará o link para o aplicativo da web. o ticker a variável pode ser convertida em um widget interativo. Soa interessante?

Além disso, você não precisa alterar nenhum código em seu notebook. Basta adicionar um cabeçalho YAML à primeira célula bruta:

---
title: Finance dashboard
description: Dashboard with financial data
show-code: False
params:
    ticker: 
        input: select
        value: TSLA
        label: Select ticker
        choices: [TSLA, COIN, MSFT, PLTR, SNOW, NFLX]
---

YAML dirá Mercury box como exibir notebook. Ela define title e aplicativos description. O código está oculto com show-code parâmetro. o ticker a variável é definida como um widget para selecionar. O caderno completo é apresentado abaixo:

Captura de tela do código para criar um painel em Python com Jupyter Notebook

Ok, mas como você executa um aplicativo da web? É muito simples, basta executar o comando:

Isso é tudo! o Mercury detectará notebooks na agenda telefônica e os servirá como aplicativos da web.

Coloque na nuvem

Eu recomendo o serviço Heroku para implementação. Ele oferece dynos gratuitos e a implementação pode ser feita com um único comando! Temos que definir Procfile ele dirá ao Heroku como executar nosso código:

web: mercury run 0.0.0.0:$PORT

Vamos transferir todos os arquivos para o repositório:

git add dashboard.ipynb
git add requirements.txt
git add Procfile
git commit -am "create dashboard in Python"
git push

Estamos prontos para implantar. O primeiro passo é criar um aplicativo no Heroku. Eu uso a ferramenta de desenvolvimento de aplicativos Heroku CLI:

heroku create dashboard-jupyter-notebook

Ordem de implementação:

Sério?! Sim, isso é tudo. Espere um minuto e seu servidor funcionará 😊 Meu painel está rodando dashboard-jupyter-notebook.herokuapp.com/. A demonstração do painel está abaixo:

Python Financial Dashboard com Jupyter Notebook

Se você estiver atualizando seu laptop e quiser implantar uma versão mais recente do seu laptop, basta usar o mesmo comando:

Exportar caderno para PDF

o Mercury tem a capacidade de exportar o notebook executado como um arquivo PDF. Um fluxo de trabalho típico é:

  • o usuário ajusta os valores do widget,
  • o usuário clica Run botão de execução do notebook com novos parâmetros,
  • o usuário clica Download botão para obter o notebook executado como PDF.

Você precisa adicionar um pacote de compilação ao Hero para fazê-lo funcionar. Isso pode ser feito em Painel do Heroku:

https://github.com/jontewks/puppeteer-heroku-buildpack

Heroku Buildpack para exportar notebooks Python como PDF

Depois de adicionar o pacote de compilação com puppeteer você precisa reimplementar o aplicativo. Por favor, adicione à alteração de código ou adicione welcome.md Arquivo (welcome.md mensagem doku) e implemente com:

Exporte um bloco de anotações para PDF com um clique:

Baixe o Bloco de Notas Python como PDF

Abstrato

O dashboard financeiro é feito com apenas 9 linhas de código Python. Jupyter Notebook foi usado para o desenvolvimento. O notebook foi lançado como um painel interativo graças Mercury estrutura.

Se você tiver alguma dúvida ou precisar de ajuda, assine a newsletter abaixo. Você pode deixar feedback, comentário ou pergunta no formulário. Fazemos o nosso melhor para responder rapidamente 🙂

“Como faço para enviar um e-mail em Python? (abordagem mais simples)


Imo Vamos manter contato 💌

Assine a newsletter para receber notificações sobre nossas atualizações de produtos e novos artigos. Nós lhe enviaremos um e-mail por mês.


Compartilhe seus notebooks Python com outras pessoas



Deixe uma resposta

O seu endereço de email não será publicado.