top of page
Buscar

Dashboard Engajamento, Python, SQL & Power BI

Foto do escritor: Rafael MarianiRafael Mariani

Que tal traduzir os números do banco de dados do YouTube em insights?





Contexto

Vamos analisar um dataset público do Youtube que engloba o Brasil, Estados Unidos, Canadá e Reino Unido. Orientado a dados, podemos gerar insights para tomadas de decisões.




Objetivo

A partir de análise de dados e criação de um dashboard, iremos responder as seguintes perguntas:


Qual foi o total de vídeos publicados e a variação temporal? Quais são os vídeos com mais curtidas/descurtidas? Quais as categorias de vídeos com mais curtidas? Quais canais apresentam maiores visualizações? Entre outras..



Dataset

Fonte: Youtube / Kaggle

Cobertura Temporal: 2020/Julho - 2021/Junho

Frequência de dados: diário

Files:
















Dashboard online e interativo! Clique aqui para acessar o dash externamente :)





Python


Importando biblioteca necessária

import pandas as pd

Analisando Brasil Dataset

path = r'C:/Users/Rafael Mariani/AED/'
filename_t = 'BR_youtube_trending_data.csv'
filename_c = 'BR_category_id.json'
data_path_t = path + filename_t #diretório dataset
data_path_c = path + filename_t #diretório dataset
path_fig = path
brt = pd.read_csv(data_path_t) #lendo arquivo .csv
brc = pd.read_json(data_path_c) #lendo arquivo .json
brt.info() #informações sobre o dataset
brt.head() #visualizando as 5 primeiras linhas
brt.isnull().sum() #identificando dados ausentes
brc.info() #informações sobre o dataset
brc.head() #visualizando as 5 primeiras linhas
brc.isnull().sum() #identificando dados ausentes

Analisando USA Dataset

path = r'C:/Users/Rafael Mariani/AED/'
filename_t = 'US_youtube_trending_data.csv'
filename_c = 'US_category_id.json'
data_path_t = path + filename_t #diretório dataset
data_path_c = path + filename_c #diretório dataset
path_fig = path
ust = pd.read_csv(data_path_t)
usc = pd.read_json(data_path_c)
ust.info() #inframações sobre o dataset
ust.head() #visualizando as 5 primeiras linhas
ust.isnull().sum() #identificando dados ausentes
usc.info() #informações sobre o dataset
usc.head() #visualizando as 5 primeiras linhas
usc.isnull().sum() #identificando dados ausentes


Analisando Canadá Dataset

path = r'C:/Users/Rafael Mariani/AED/'
filename_t = 'CA_youtube_trending_data.csv'
filename_c = 'CA_category_id.json'
data_path_t = path + filename_t #diretório dataset
data_path_c = path + filename_c #diretório dataset
path_fig = path
cat = pd.read_csv(data_path_t)
cac = pd.read_json(data_path_c)
cat.info() #informações sobre o dataset
cat.head() #visualizando as 5 primeiras linhas
cat.isnull().sum() #identificando dados ausentes
cac.info() #informações sobre o dataset
cac.head() #visualizando as 5 primeiras linhas
cac.isnull().sum() #identificando dados ausentes

Analisando Reino Unido Dataset

path = r'C:/Users/Rafael Mariani/AED/'
filename_t = 'GB_youtube_trending_data.csv'
filename_c = 'GB_category_id.json'
data_path_t = path + filename_t #diretório dataset
data_path_c = path + filename_c #diretório dataset
path_fig = path
gbt = pd.read_csv(data_path_t)
gbc = pd.read_json(data_path_c)
gbt.info() #informações sobre o dataset
gbt.head() #visualizando as 5 primeiras linhas
gbt.isnull().sum() #identificando dados ausentes
gbc.info() #informações sobre o dataset
gbc.head() #visualizando as 5 primeiras linhas
gbc.isnull().sum() #identificando dados ausente



SQL Server:


Criando nova tabela dimensão (categoria): dCountries

CREATE TABLE dCountries (
countryId INT PRIMARY KEY NOT NULL,
Country VARCHAR(30) NOT NULL
)
;

Inserindo dados na tabela criada

INSERT INTO dCountries values(01,'Brazil')
INSERT INTO dCountries values(02,'United States')
INSERT INTO dCountries values(03,'Canada')
INSERT INTO dCountries values(04,'United Kingdom')


Agora, vamos adicionar uma nova coluna (CountryId) nas tabelas fatos (youtube_treding_data) de cada país.


alter table BR_youtube_trending_data add countryId INT NOT NULL DEFAULT 1; -- BR = 1
alter table US_youtube_trending_data add countryId INT NOT NULL DEFAULT 2; -- US = 2
alter table CA_youtube_trending_data add countryId INT NOT NULL DEFAULT 3; -- CA = 3
alter table GB_youtube_trending_data add countryId INT NOT NULL DEFAULT 4; -- GB = 4


Criando nova tabela fato concatenada (BR + US + CA + GB):

CREATE VIEW vwCountries_youtube_trending_data as
select brt.*, brc.snippet_title from BR_youtube_trending_data as brt
inner join BR_category_id as brc
on brt.categoryId = brc.id
union all
select ust.*, usc.snippet_title from US_youtube_trending_data as ust
inner join US_category_id usc
on ust.categoryId = usc.id
union all
select cat.*,cac.snippet_title from CA_youtube_trending_data as cat
inner join CA_category_id cac
on cat.categoryId = cac.id
union all
select gbt.*, gbc.snippet_title from GB_youtube_trending_data as gbt
inner join GB_category_id as gbc
on gbt.categoryId = gbc.id

Dados prontos para serem incorporados no Power BI.



Relacionamento entre as tabelas (Star Schema) no Power BI:






Fim! Curtiu? :)





49 visualizações0 comentário

Posts recentes

Ver tudo

Comments


logo rm.png

© 2021 por Rafael Mariani. Criado orgulhosamente com Wix.com

bottom of page