Licenças do Power BI Explicadas
Tudo o que você precisa saber sobre as licenças e preços do Microsoft Power BI, Fabric, Power BI Embedded e Power BI Report Server.
Para uma melhor usabilidade veja no computador (ou gire o seu dispositivo)
Não sei você, mas eu sou o tipo de pessoa que fica mais tempo tentando escolher um bom filme para ver do que vendo o filme em si. Normalmente utilizo as notas fornecidas pelo site do IMDb.
As notas fornecidas neste site são uma proxy muito boa da qualidade do filme.
Então eu fiz esse dashboard para justamente otimizar esse tempo de escolha e conseguir analisar os melhores filmes por categoria, ator, diretor, ano, etc.
Os filmes estão “Rankeados” em função da:
Os dados foram obtidos baixando o dados (.tsv – tab separeted values) do banco de dados do site do IMDb e importando para o Power BI as seguintes tabelas
…
Após importar os dados e filtrar somente os “titleType” = “movies” é necessário relacionar as tabelas.
Vejo o diagrama relacional entre as tabelas criado no Power BI
Obs1* As tabelas dGenre, dGenreID e dYear foram geradas usando o Power Query a partir da consulta f_Title
Obs2* para filtrar as tabelas que não tem “titleType” = “movies” foi necessário realizar Left Outer Join usando a f_title[“tconst”] e a f_title Crew[“tconts”].
bla bla bla
bla bla bla
Para calcular corretamente o Rank foi necessário primeiro normalizar o votos, ou seja, transformar um valor que varia de zero votos até 3 milhões de votos o valor vai variar de 0 a 1, onde 1 representa o número de votos máximo e 0 representa o número de votos mínimo.
Rating (Rank) =
// Normalizando soma de votos
VAR MAX_global = CALCULATE( MAX(f_Title[numVotes]) , ALL(f_Title) )
VAR soma_atual = AVERAGE(f_Title[numVotes])
VAR MIN_global = CALCULATE(MIN(f_Title[numVotes]) , ALL(f_Title) )
VAR normalizado = DIVIDE( soma_atual - MIN_global , MAX_global - MIN_global )
VAR peso_votos = 8
// Normalizando Ano
VAR MAX_Ano = CALCULATE( MAX(f_Title[startYear]) , ALL(f_Title) )
VAR Ano = AVERAGE(f_Title[startYear])
VAR MIN_Ano= CALCULATE(MIN(f_Title[startYear]) , ALL(f_Title) )
VAR normalizado_ano = DIVIDE( Ano - MIN_Ano , MAX_Ano- MIN_Ano )
VAR peso_ano = 0.5
// Nota
VAR nota_atual = AVERAGE(f_Title[AverageRating])
// Nota final
VAR condicion = IF(nota_atual < 4 , BLANK() , nota_atual + normalizado*peso_votos + normalizado_ano*peso_ano)
RETURN condicion
Após calcular a medida vamos Rankea-la:
Rank =
VAR ranke = RANKX( ALLSELECTED(f_Title) , [Rating (Rank)] , , , Skip)
VAR media = AVERAGE(f_Title[AverageRating])
RETURN IF(media < 4 , BLANK() , ranke )
A imagens foram obtidas utilizando a linguagem de programação Python e fazendo a conexão com a seguinte API:
O código em Python foi executado no Visual Studio em um arquivo Jupyter Notebook.
As livrarias que foram utilizadas
import pandas as pd
import requests
import json
from IPython.core.display import clear_output
from pandas import json_normalize
from tqdm import tqdm_notebook as tqdm
import time
Através dos valores já obtidos da tabela “f_Title” é possível gerar um arquivo .csv (commar separeted values) exportando de uma visual de tabela somente o “tconst” e o “Title”. O valor de “tconst” será usado pela API para procurar a imagem
df2 = pd.read_csv("C:\CAMINHO DO ARQUIVO\Movies2.csv")
df2["URL"] = ""
df2
Veja abaixo a função que retorna o link da imagem usando o código “tconst”:
As imagens foram prioritariamente buscadas na língua inglesa.
def get_image( imdbcode: str ):
KEY = "SUA_CHAVE"
IMG_PATTERN = 'http://api.themoviedb.org/3/movie/{imdbid}/images?api_key={key}'
r = requests.get(IMG_PATTERN.format(key=KEY,imdbid=imdbcode))
api_response = r.json()
posters = api_response['posters']
a = json.loads(r.text)
res = json_normalize(a['posters'])
data = pd.DataFrame(res)
data = data[ data['iso_639_1'] == 'en' ]
data2 = data[data['height'] == 3000 ]
if (len(data2) >= 1 ):
result = data2["file_path"].values[0]
else:
result = data["file_path"].values[0]
result = 'https://image.tmdb.org/t/p/w500' + result
return result
Agora vamos procurar para cada linha na tabela exportada o respectivo URL:
for index, row in tqdm(df2.iterrows()):
Imdb_id = row['tconst']
try:
row['URL'] = get_image(Imdb_id)
except:
pass
df = df2
df
Agora vamos gerar um novo .csv com o dataframe obtido.
df.to_csv (r"C:\CAMINHO DO ARQUVI\IMDB.csv", index = False, header=True)
Agora que já temos o URL de todas as imagens é possível utilizar o visual personalizado “Image Grid” e usar a coluna de URL como entrada.
Lembrando que o dashboard possui diversas ferramente de navegação como botões de “drill-through” e filtros.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.
Tudo o que você precisa saber sobre as licenças e preços do Microsoft Power BI, Fabric, Power BI Embedded e Power BI Report Server.
Como importar rapidamente o histórico de várias ações com uma planilha Excel automatizada pro Power BI usando a fórmula HISTÓRICODEAÇÕES e juntando abas de planilha Excel numa só
Como a tranformação digital aliada à manutenção industrial pode gerar valor para consumidores e parceiros de negócio.
Cookie | Duração | Descrição |
---|---|---|
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |