DEV Community

Cover image for Analisando meus dados da Netflix
Beatriz Maia
Beatriz Maia

Posted on • Updated on

Analisando meus dados da Netflix

Aqui vamos nós para mais um post de Análise de Dados. Dessa vez mais incrível ainda, nós não vamos utilizar dados de outras pessoas para fazer uma análise, vamos utilizar nossos próprios dados. Incrível né?

Neste artigo você vai conseguir responder perguntas relacionadas à series e filmes assistidos por você.

Perguntas como:

  • Quanto tempo passei assistindo determinada serie ou filme?
  • Qual temporada eu mais assisti?
  • Quais foram os episódios mais assistidos?
  • Em quais dias da semana eu assisti mais episódios?
  • Em que hora do dia eu assisto episódios de Friends com mais frequência?

Primeiro vou começar fazendo uma Análise Exploratória geral nos dados. Depois irei filtrar os dados e analisar mais detalhadamente uma série de comédia que eu amo: Friends.

Vamos lá??

Friends


Para começar preciso dizer que esta análise foi inspirada em um artigo postado pelo Dataquest. Vou pedir para que vocês acessarem esse link, onde eles explicam o passo a passo para solicitar seus dados no site da Netflix. Além disso, você consegue ver a análise feita pelo autor do artigo.

Como de costume, começamos importando as bibliotecas necessárias. Aqui, para essa analise simples, foram utilizadas apenas essas três.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
Enter fullscreen mode Exit fullscreen mode

Conhecendo e Preparando os Dados

Vamos conhecer melhor nossos dados e prepara-los para a análise. Foram feitas transformações bem interessantes, tenho certeza que vai ser enriquecedor para você.
Depois de ler os dados que vieram no formato csv, vamos mostrar as 5 primeiras linhas do nosso DataFrame:

df = pd.read_csv('ViewingActivity.csv')
df.head()
Enter fullscreen mode Exit fullscreen mode

Utilizando o .info() e .shape obtemos informações sobre nossas colunas e a quantidade de linhas e colunas, respectivamente.

df.shape

df.info()
Enter fullscreen mode Exit fullscreen mode

image1

Optei por eliminar algumas colunas que para minha analise não seriam interessantes.

Além disso também renomeei a primeira coluna, apenas substituindo o espaço no 'Start Time' por um underscore . E claro, verifiquei a existência de valores NaN.

df.drop(['Profile Name', 'Attributes', 'Supplemental Video Type', 'Device Type',
         'Bookmark', 'Latest Bookmark', 'Country'], axis=1, inplace=True)
df.head()
Enter fullscreen mode Exit fullscreen mode

image1

Convertendo tipo Object em Datetime e Timedelta

Os dados das colunas 'Start_Time' e 'Duration' parecem corretos, mas se você reparar bem eles não estão armazenados no formato correto. Podemos usar df.dtypes para obter uma lista dos tipos de dados de cada coluna do nosso dataframe:

df.dtypes
Enter fullscreen mode Exit fullscreen mode

image1

Todas as três colunas são armazenadas como object, o que significa que são strings. Isso não é bom para as duas colunas relacionadas ao tempo. Vamos converter essas duas colunas para trabalharmos com elas.

O objetivo é:

  • Converter Start_Time para Datetime (um formato de data e hora que o Pandas pode entender e realizar cálculos)
  • Converter Start_Time de UTC para nosso fuso horário local
  • Converter Duration para Timedelta (um formato de duração de tempo que o Pandas podem entender e realizar cálculos)

Começando com a conversão Start_Time para datetime usando pd.to_datetime()

image1

Adicionamos o argumento opcional utc=True para que nossos dados de data e hora tenham o fuso horário UTC anexado a eles.
Agora que temos essa coluna no formato correto, é hora de alterar o fuso horário para o horário local.

Podemos converter data e hora para qualquer fuso horário usando o .tz_convert() e passando um argumento com a string para o fuso horário que queremos converter.

Obs: Precisamos realizar mais um passo. Só podemos usar .tz_convert() em um DatetimeIndex, portanto, precisamos definir a coluna Start_Time como o índice usando set_index().

image1

Agora, vamos lidar com a coluna Duration. Em vez de convertê-lo em uma data e hora, precisamos convertê-lo em um Timedelta, que é uma medida de duração de tempo que o pandas entende.

Fazemos isso utilizando pd.to_timedelta()

image1

Análise de Dados Gerais

Se notarmos bem, a coluna Title contém o nome da série(ou filme), temporada e título do episódio. Essas informações poderiam ser "quebradas" em novas colunas, concordam?

E foi exatamente isso que eu fiz no código abaixo utilizando str.split()

image1

Além disso, decidi criar mais duas colunas a partir da coluna 'Start_Time'. Como temos data e hora, criei a coluna 'Weekday' que nos informa o dia da semana (Segunda=0, Domingo=6) e a coluna 'Hour' com o horário.

Podemos usar os métodos .dt.weekday e .dt.hour para fazer isso.

image1

Quantas vezes foi dado play em cada série/filme?

image1

Qual é o top 10 series/filmes mais assistidos?

image1

Análise de Dados - Friends

Como dito anteriormente, irei fazer uma análise mais detalhada selecionando apenas registros relacionados à série Friends.

Para isso irei criar um outro DataFrame somente com registros onde 'Title_Name' é igual à Friends. Aqui você pode adaptar selecionando a sua série ou filme preferido.

image1

Percebemos em nossa exploração de dados que, quando algo como uma prévia de um episódio é reproduzido automaticamente, ele conta como uma visualização em nossos dados.

Então, vamos filtrar nosso dataframe friends, limitando para apenas linhas onde o valor de Duration seja maior que dois minutos.

image1

Respondendo mais algumas perguntas:

Quanto tempo passei assistindo Friends?

image1

Confesso que esperava mais até haha. 
Não sei vocês, mas eu tenho o costume dar play em alguma série enquanto faço outra coisa só para ter um "companhia" enquanto, por exemplo, lavo a louça, arrumo a casa, almoço, janto… Então na verdade, uma parte desse tempo nem foi assistindo ativamente.

Qual temporada de Friends eu mais assisti?

image1

Caso você não saiba, a temporada 10 é a última temporada de Friends, está ai o porquê de ser a temporada que menos assisti, não gosto de ver os últimos episódios pois fico triste :(

Quais foram os episódios mais assistidos em Friends?

image1

Mais um caso, apesar de simples, de como a análise de dados é incrível, eu não fazia ideia de que esse era o episódio que eu mais tinha assistido até então.

Qual dia da semana costumo assistir Friends?

image1

print(friends.groupby('Weekday').agg({'Start_Time':'count'}))

# Monday=0, Sunday=6
plt.figure(figsize=(10,5))
ax = sns.countplot(x='Weekday', data=friends, color='blueviolet')
ax.set_title('Episódios de Friends assistidos por Dia da Semana', fontsize=17);
Enter fullscreen mode Exit fullscreen mode

image1

Sábado é o dia em que mais assisti episódio de Friends, mas veja como Quarta-Feira está bem próximo também.

Em que hora do dia eu assisto episódios de Friends com mais frequência?

print(friends.groupby('Hour').agg({'Start_Time':'count'}))

plt.figure(figsize=(10,5))
ax = sns.countplot(x='Hour', data=friends, color='blueviolet')
ax.set_title('Episódios de Friends assistidos por Hora', fontsize=17);
Enter fullscreen mode Exit fullscreen mode

image1

Por essa eu já esperava… Como eu disse, costumo assistir episódios enquanto estou almoçando, isso justifica o porque dessa barrinha tãao grande no horário de 12h.


Aqui você encontra a minha análise no GitHub: https://bit.ly/2Uo7JL5

Espero que vocês tenham gostado do post e da análise, foi algo simples, mas creio que consegui mostrar como conseguimos usar essas técnicas para saber mais sobre nossos gostos e hábitos.
Não esqueçam de conferir meus posts no LinkedIn e me seguir por lá ♥

Contatos:

Discussion (0)