Como usar Estórias de Usuário para analisar dados das plataformas de streaming

Como analisar e obter respostas a partir dos dados da Netflix e Disney+ através de Estórias do Usuário?

Wander Buraslan
6 min readMar 15, 2021

Quando comecei a estudar análise de dados me deparei com várias problemáticas, a principal foi na criação de mecanismos para contar histórias a partir dos dados que eu estivesse estudando. Mas, por qual motivo isso torna-se relevante?

Eu tinha que utilizar estatística para solucionar as hipóteses levantadas durante a etapa de manipulação e tratamento de dados. Diante desse contexto, criei estorias para emergir todo um conceito para que meus gráficos façam um pouco mais de sentido como resposta, para quem foi feito, qual o objetivo e o que isso muda na vida de uma pessoa. Nesse sentido, podemos imaginar que, muitos processos necessitam de histórias ou de ferramentas para serem melhor interpretados. Logo, decidi pegar esse conceito e aplicar no meu percurso de aprendizagem em análise de dados.

A primeira coisa que fiz foi escolher um dataset no Kaggle, importar as bibliotecas necessárias e ler o arquivo baixado.

Através das colunas de um DataFrame, posso visualizar uma coluna de título, colunas responsáveis por aplicar notas aos títulos e também, colunas que ditam aonde posso encontrar esses títulos. Então, levanto as hipóteses:

  • Quantos títulos pertencem a cada plataforma?
  • Uma plataforma possuindo um título, existe a possibilidade desse mesmo título estar presente em outra plataforma?
  • Qual plataforma é melhor pontuada de acordo com o IMDb?
  • Qual plataforma possui mais gêneros relacionados ao drama, ação e aventura?

Mas por que eu devo responder essas quatro hipóteses e para quem essa solução é destinada?

“Imagine que você possui uma pequena renda para assinar uma plataforma de Streaming e deseja saber qual plataforma entre Netflix, Disney+, Hulu e Prime Video é a melhor para sustentar seu gosto, mas qual é o seu gosto?”

“Carla, por exemplo, é estudante do ensino médio e deseja pagar pela que mais possui títulos na plataforma, ao contrário de João, que tem vontade de estudar cinema na faculdade e deseja pagar pela qual possui maior média de notas no IMDb.”

Hands-on

O principal passo é importar as bibliotecas que você vai utilizar durante todo o processo, são elas:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

Em seguida, passamos para uma leitura de arquivos, na qual logo em seguida iremos apresentar o DataFrame com a função .head(), responsável por imprimir os cinco primeiros índices da nossa tabela de dados.

df_dados = pd.read_cesv("nome_do_arquivo.csv")
df_dados.head()

Após a leitura do arquivo, uma etapa importante do nosso trabalho é identificar qual coluna é desnecessária para nossas perguntas e descobrir se o nosso dataset contém dados ausentes. Mas, por qual motivo devemos fazer esse tipo de processo? Como devemos responder algumas perguntas na qual levantamos, é importante fazer isso no início da manipulação e tratamento de dados para que no futuro não poluam nossas respostas, ou seja, o descarte de colunas e dados ausentes diminui a possibilidade de atrapalhar nossa análise futura.

df_dados = pd.drop(['Unnamed: 0','ID','Type], axis = 1, inplace='True')
df_dados.isnull().sum()

Número de títulos das plataformas de Streaming

#Número de títulos da plataforma Netflix
netflix_data = df_dados.loc[df_dados['Netflix'] == 1]
#Número de títulos da plataforma Disney+
disney_data = df_dados.loc[df_dados['Disney+'] == 1]

Se visualizarmos as colunas nomeadas por cada plataforma temos a resposta se possui ou não tal título dentro da plataforma, isto é, se o título estiver presente na Netflix, apresentará como 1, caso contrário 0. Logo, atribuí em cada variável referente a plataforma, o número de títulos presentes, desse modo poderemos ler quantos títulos cada uma possui e se um título pode estar ou não presente em outro catálogo ao mesmo tempo, veja:

netflix_data[['Netflix','Hulu','Prime Video','Disney+']].sum()

Na plataforma da Netflix, dos 3560 títulos, podemos perceber que:
25 títulos estão também presentes na Hulu
345 títulos estão também presentes na Prime Video
10 títulos estão também presentes na Disney+

disney_data[['Netflix','Hulu','Prime Video','Disney+']].sum()

Na plataforma da Disney+, dos 564 títulos, podemos perceber que:
10 títulos presentes na Netflix
7 títulos presentes na Hulu
19 títulos presentes na Prime Video

hulu_data[['Netflix','Hulu','Prime Video','Disney+']].sum()

Na plataforma da Hulu, dos 903 títulos, podemos perceber que:
25 títulos presentes na Netflix
241 títulos presentes na Prime Video
7 títulos presentes na Disney+

prime_data[['Netflix','Hulu','Prime Video','Disney+']].sum()

Na plataforma da Prime Video, dos 12354 títulos, podemos perceber que:
345 títulos presentes na Netflix
241 títulos presentes na Hulu
19 títulos presentes na Disney+

Ranking do IMDb

Caso você não saiba o que é ou como funciona o ranking do IMDb, consiste em uma plataforma online onde tudo que envolve cinema é avaliado, seja pela obra em si ou pelos atores presentes em tela. Desse modo, iremos trabalhar com esse ranking para avaliarmos qual plataforma é melhor pontuado.

print("Média de nota do IMDb dos títulos presentes na Netflix : {:.2f}".format(netflix_data['IMDb'].dropna().mean()))print("Média de nota do IMDb dos títulos presentes na Disney+ : {:.2f}".format(disney_data['IMDb'].dropna().mean()))print("Média de nota do IMDb dos títulos presentes na Hulu : {:.2f}".format(hulu_data['IMDb'].dropna().mean()))print("Média de nota do IMDb dos títulos presentes na Prime Video : {:.2f}".format(prime_data['IMDb'].dropna().mean()))

A função .dropna() retira todos os dados ausentes que pertencem a coluna do IMDb e o .sum() faz o nosso trabalho de somar os dados que ficaram. Para termos um pouco mais de noção sobre esses dados ausentes, podemos chamar novamente a tabela que analisamos logo no início do nosso post.

df_dados.isnull().sum()

Gêneros relacionados ao drama, ação e aventura

Para analisar os gêneros, utilizaremos uma função de leitura de string para buscar o nome desejado entre vários dados unidos, por exemplo, se pegarmos um filme e analisar a partir do gênero que ele pretende ser, iremos perceber que ele possui mais de um ou dois gêneros, sendo ao mesmo tempo terror e suspense ou ação e aventura. Logo, a função str.contains() buscará em meio aos gêneros cadastrados, o gênero específico que desejamos obter.

netflix_data['Genres'].str.contains('Drama').dropna()

Se colocarmos dessa maneira, a função retornará verdadeiro ou falso para cada dado analisado, mas acrescentaremos o .value_counts com a finalidade de enxergar de forma numérica quantos verdadeiros e falsos compreende nossa busca do gênero drama.

netflix_data['Genres'].str.contains('Drama').dropna().value_counts()
#Se desejar apenas levantar o número de dados verdadeiros:
netflix_data['Genres'].str.contains('Drama').dropna().sum()

Faremos isso para todas as plataformas, para que no final possamos levantar qual plataforma é mais favorável ao gênero escolhido por um cliente, caso o usuário curta gêneros de drama, ação ou aventura, será por essa análise que possivelmente poderemos recomendar tal plataforma para ser experimentada, ou melhor, assinada.

Conclusão

Todas as plataformas analisadas nesse post fazem parte de uma dinâmica de aprendizagem para visualizar e responder questões difundidas ao longo do artigo. Ao se deparar com casos igual de Carla ou João, podemos perceber que os dados estão muito próximos com o que o cliente deseja, não é atoa que hoje essas plataformas fazem parte de estudos vinculados ao aprendizado de máquina e cultura de dados.

--

--

Wander Buraslan

Estudante de Engenharia de Software em busca de desenvolvimento profissional, com o objetivo de analisar dados e compartilhar resultado com as pessoas.