14 minutos de leitura

Como automatizar o Power BI com Python

Por Rafael Danoski
Conteúdos do artigo

Descubra as vantagens da automatização do Power BI com Python: visualizações surpreendentes, manipulação de dados fácil e organização otimizada.

A análise e organização de dados empresariais está se tornando um desafio crescente devido ao aumento constante da geração de dados ao redor do mundo. Com isso, as ferramentas de Business Intelligence (BI) se sobressaem por apresentar soluções modernas para análise e visualização de dados.

Dentre elas, o Power BI se destaca pela sua eficiência e facilidade de uso, pois esse software pode ser facilmente compreendido até mesmo pelos usuários mais leigos em computação. Mas, apesar de ser muito útil e prático, os usuários de Power BI às vezes precisam automatizar rapidamente suas bases de dados sem precisar de importações pesadas para o arquivo ou até lidar com um  uma complexidade excessiva nas tabelas e medidas da sua estrutura. Felizmente, com a linguagem Python, esses problemas podem ser resolvidos e ainda oferecer uma infinidade de outras soluções de manipulação e visualização de dados, utilizando suas bibliotecas para otimizar suas análises e dashboards.

Portanto, neste artigo, vamos mostrar como automatizar o Power BI com Python e quais são as vantagens dessa integração na prática. Vamos nessa!

O que é Python?

Python é uma linguagem de programação que vem ganhando popularidade nos últimos anos por ser uma das linguagens mais fáceis de se aprender, sendo a favorita dos “não programadores”.

Sua versatilidade permite que seja utilizada para diversos propósitos, desde algoritmos de recomendação da Netflix até softwares de controle de carros autônomos. Além disso, Python pode ser usado em desenvolvimento web, teste de software, automação de tarefas, análise de dados e machine learning. Porém, o foco deste artigo será em automação e uso de dados.

Quais são as vantagens de integrar Python com Power BI?

Ao integrar o Python com Power BI, você terá todo o acervo de possibilidades do Python em suas mãos. Ou seja, poderá utilizar todas as bibliotecas de manipulação e visualização de dados dessa linguagem, além de criar modelos de machine learning (aprendizado de máquina) e importar os resultados para seus dashboards.

Vejamos mais detalhadamente a seguir as reais possibilidades que essa integração nos dá.

1. Web Scraping

Web Scraping é uma técnica de extração de dados na web de forma automatizada. Em resumo, é o ato de copiar e colar informações de um site para uma planilha, mas de maneira automática e mais eficiente. Assim, podemos utilizá-lo para extrair milhões de linhas de um site de uma única vez.

Abaixo, temos um código bem simples de web scraping que permite a extração do valor de algumas ações em tempo real. Não iremos nos aprofundar em web scraping neste artigo, mas, caso tenha interesse, a Asimov Academy tem uma trilha completa sobre automações com diversos exemplos para você explorar e usar em seus dashboards.

import requests
from bs4 import BeautifulSoup
import pandas as pd
  
urls = [
    'https://www.investing.com/equities/nike',
    'https://www.investing.com/equities/coca-cola-co',
    'https://www.investing.com/equities/microsoft-corp',
    'https://www.investing.com/equities/3m-co',
    'https://www.investing.com/equities/american-express',
    ]
all=[]
for url in urls:
    page = requests.get(url,headers=headers)
    soup = BeautifulSoup(page.text, 'html.parser')
    company = soup.find('h1', {'class': 'text-2xl font-semibold instrument-header_title__gCaMF mobile:mb-2'}).text
    price = soup.find('div', {'class': 'instrument-price_instrument-price__xfgbB flex items-end flex-wrap font-bold'}).find_all('span')[0].text
    change = soup.find('div', {'class': 'instrument-price_instrument-price__xfgbB flex items-end flex-wrap font-bold'}).find_all('span')[2].text
    volume=soup.find('div',{'class': 'trading-hours_value__5_NnB'}).text
    x=[company,price,change,volume]
    all.append(x)
column_names = ["Company", "Price", "Change","Volume"]
df = pd.DataFrame(columns = column_names)
for i in all:
    index=0
    df.loc[index] = i
    df.index = df.index + 1
df=df.reset_index(drop=True)
Resultado do script de web scraping para extração do valor de ações em tempo real
Resultado do script de web scraping para extração do valor de ações em tempo real

Vale lembrar que o Power BI já possui uma ferramenta para extrair dados da web. Porém, com Python essa extração é muito mais rápida e eficiente, possibilitando consultar centenas de páginas em questão de segundos, além de oferecer mais liberdade para manipular as informações, já que podemos extrair cada pixel da tela com o scraping.

2. Machine Learning

É um ramo da inteligência artificial que, por meio de algoritmos, dá aos computadores a capacidade de identificar padrões em grandes volumes de dados e fazer previsões com eles. O Python é um grande aliado do machine learning e da inteligência artificial como um todo, contendo diversas bibliotecas úteis para sua aplicação.

Ao integrar Python ao Power BI, você poderá incorporar essas poderosas ferramentas aos seus dashboards. Mais adiante neste artigo, mostraremos um exemplo bem interessante de uso.

3. Seaborn

O Python possui uma biblioteca para visualização de dados chamada Seaborn, focada em visualizações estatísticas de alto nível. Ela é uma boa opção para quem já esgotou as possibilidades gráficas do Power BI e quer apresentar algo diferente e chamativo, pois além de apresentar gráficos com muito estilo, o Seaborn é fácil de integrar aos scripts de machine learning.

Para ver a vasta variedade de gráficos da biblioteca, basta acessar sua documentação e explorá-la ao máximo.

O Power BI possui uma visualização chamada Visual Python. Com ela, é possível criar visuais com scripts Python, assim você consegue testar de maneira bem fácil a biblioteca Seaborn.

4. Pandas

Pandas é uma poderosa ferramenta de manipulação de dados do Python, pois possibilita alterar seus dados de forma mais rápida e eficiente do que as linguagens DAX e M do Power BI.

5. Organização das tabelas

Se você já experimentou lidar com diversas tabelas e medidas no Power BI e teve que reorganizar toda a estrutura cada vez que um novo dado era incluso, provavelmente sabe como isso pode se tornar um caos desordenado. Bem, com o Python, isso tudo se torna mais simples, já que a organização dos dados fica toda no script (o Pandas auxilia muito nisso) e, além de ser mais eficiente, também torna mais simples a disposição das informações, requerendo o mínimo de esforço possível para criar seus visuais.

Como instalar o Python

Agora que você já viu as vantagens de integrar Python com Power BI, é hora de colocar a mão na massa!

Primeiramente, baixe a última versão para seu sistema operacional do instalador do Python.

Site oficial para download da linguagem Python
Site oficial para download da linguagem Python

Na instalação, certifique-se de marcar a opção “Add python.exe to PATH”.

Tela de instalação do Python no Windows
Marque a caixa Add python.exe to PATH

Após isso, selecione a opção Install Now e aguarde.

Para verificar se a instalação foi bem-sucedida, abra o Prompt de Comando. Para isso, procure por cmd no menu iniciar.

Busca por cmd no menu iniciar do Windows

Digite o seguinte comando no terminal:

python --version

Se tudo correr bem com a instalação, o terminal retornará a versão instalada do Python.

Confirmação da instalação do Python por meio do Prompt de Comando

Ainda com o terminal aberto, instale duas bibliotecas que você precisará quando for utilizar o Python no Power BI: Pandas e Matplotlib. Para isso, digite as linhas de código abaixo, uma de cada vez:

pip install pandas
pip install matplotlib
Instalando a biblioteca Pandas pelo CMD

Como integrar Python com Power BI

Com o Python instalado na sua máquina, podemos integrá-lo ao Power BI. Para começar, vamos habilitar os scripts Python.

Com o seu arquivo aberto, acesse Arquivo → Opções e Configurações → Opções → Scripts do Python. Em Diretórios base do Python detectados, selecione o diretório no qual o Python está instalado, mas caso não esteja entre as opções, selecione Outro e navegue até o local do arquivo.

Opções de scripts do Python no Power BI

Para importar um script do Python, acesse Obter dados → Mais opções → Script do Python.

Tela para importar um script do Python no Power BI
Tela para instalar o script do Python no Power BI

A partir daqui, escreva seu script Python no quadro e siga os mesmos passos de qualquer outra importação de base de dados do Power BI.

Algoritmos de Machine Learning na prática

Como foi visto anteriormente, uma das vantagens de se utilizar Python é aplicar algoritmos de machine learning em nossos projetos. No script abaixo, temos um algoritmo de machine learning para predição de preços de uma determinada ação a partir de um dataset com dados históricos.

#importando as bibliotecas
import pandas as pd
import numpy as np
from sklearn.preprocessing import MinMaxScaler
from keras.models import Sequential
from keras.layers import Dense, Dropout, LSTM
#criando o dataframe
df = pd.read_csv('NSE-TATAGLOBAL11.csv', sep=',')
data = df.sort_index(ascending=True, axis=0)
new_data = pd.DataFrame(index=range(0,len(df)),columns=['Date', 'Close'])
for i in range(0,len(data)):
    new_data['Date'][i] = data['Date'][i]
    new_data['Close'][i] = data['Close'][i]
#setando o index
new_data.index = new_data.Date
new_data.drop('Date', axis=1, inplace=True)
#criando a base de treino e test
dataset = new_data.values
train = dataset[0:987,:]
valid = dataset[987:,:]
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_data = scaler.fit_transform(dataset)
x_train, y_train = [], []
for i in range(60,len(train)):
    x_train.append(scaled_data[i-60:i,0])
    y_train.append(scaled_data[i,0])
x_train, y_train = np.array(x_train), np.array(y_train)
x_train = np.reshape(x_train, (x_train.shape[0],x_train.shape[1],1))
# setando o modelo
model = Sequential()
model.add(LSTM(units=50,  return_sequences=True, input_shape=(x_train.shape[1],1)))
model.add(LSTM(units=50))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(x_train, y_train, epochs=1, batch_size=1, verbose=2)
inputs = new_data[len(new_data) - len(valid) - 60:].values
inputs = inputs.reshape(-1,1)
inputs  = scaler.transform(inputs)
X_test = []
for i in range(60,inputs.shape[0]):
    X_test.append(inputs[i-60:i,0])
X_test = np.array(X_test)
X_test = np.reshape(X_test, (X_test.shape[0],X_test.shape[1],1))
closing_price = model.predict(X_test)
closing_price = scaler.inverse_transform(closing_price)
#dados de treino e predição
train = new_data[:987]
valid = new_data[987:]
Algoritmo de machine learning para predição de preços de uma determinada ação a partir de um dataset com dados históricos

Com o script importado no Power BI, basta criar os mais diversos gráficos para seu dashboard. 

Se você se sentir encorajado a investigar o mundo da ciência de dados e machine learning, confira a Trilha Data Science e Machine Learning da nossa escola de Python. Nela, temos diversos projetos, desde análise de ações e previsão de vendas até precificação imobiliária e previsão de doenças cardíacas. 

Ademais, se Python com Power BI não for o suficiente para você, acesse nossos demais conteúdos sobre Dashboards Interativos com os mais diversos projetos para você expandir seus conhecimentos.

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse:
Conteúdos do tutorial