Que tal traduzir os números do banco de dados do YouTube em insights?
![](https://static.wixstatic.com/media/1b626c_25aa47ea785e4373b4906adb42300f45~mv2.png/v1/fill/w_980,h_551,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/1b626c_25aa47ea785e4373b4906adb42300f45~mv2.png)
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:
![](https://static.wixstatic.com/media/1b626c_71648c6cd2ab40dbbc92b0e033c1773f~mv2.jpg/v1/fill/w_980,h_481,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/1b626c_71648c6cd2ab40dbbc92b0e033c1773f~mv2.jpg)
Fim! Curtiu? :)
Comments