Este (micro)relatório apresenta algumas informações extraídas de um dataset com o catálogo da Netflix, disponível no Kaggle.
As bibliotecas utilizadas são as seguintes:
In [1]:
%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
In [2]:
df = pd.read_csv("netflix_titles.csv")
df
Out[2]:
Nosso dataset contém 6234 elementos, com 12 atributos cada, além de possuir missing data. Dentre os atributos existentes pra cada elemento do catálogo, vamos focar apenas nos seguintes (uma vez que esse é apenas um exemplo):
type - o tipo da obra (série ou filme)release_year - ano de lançamento da obradate_added- data de lançamento da obradirector - diretor da obra
In [3]:
df.type.value_counts().plot(kind="bar")
Out[3]:
Outra informação interessante de se obter é analisar a "idade" dos conteúdos (ou seja, o quão antigos eles são) e quanta sadições são feitas por dia. Para isso, precisamos de dois gráficos:
o primeiro faz uma contagem do ano de produção das obras. Como este (micro)relatório foi escrito em meados de 2020, é injusto comparar os dados desse ano com os restantes. Logo, iremos filtrar os dados para apenas os de 2019 ou antes. Em seguida, fazemos a contagem dos elementos
o segundo é análogo ao anterior, porém não precisamos fazer o corte do ano de 2020, visto que a ideia é analisar as adições por dia. Logo, basta fazer a contagem pelas datas. Porém,temos dois problemas:
In [4]:
# para apresentar os dois gráficos juntos, precisamos primeiro criar uma figura
fig = plt.figure(1, figsize=(20,10))
# podemos também dar um título a essa figura
fig.suptitle("Informações temporais dos conteúdos", fontsize=20)
# para apresentar diversos gráficos em uma mesma figura, precisamos criar "sub-gráficos", que serão dispostos
# como uma tabela.
# para criar um sub-gráfico, utilizamos a função plt.subplot(linhas, colunas, opsição)
plt.subplot(2,1,1)
# temos de ordenar a série temporal gerada a partir dos anos (que, nesse caso, são os índices)
year_count = df.release_year.value_counts().sort_index()
years_before_2020 = year_count.index < 2020
ax = year_count[years_before_2020].plot()
ax.set_title("Ano em que foi produzido", fontsize=15)
plt.subplot(2,1,2)
#para processar a data, precisamos da biblioteca datetime
from datetime import datetime
# primeiramente, vamos remover todos os dados que não possuem data definida
#depois vamos fazer o parser das datas
dates = df.date_added\
.dropna()\
.apply(lambda d: datetime.strptime(d.strip(), '%B %d, %Y'))
ax = dates.value_counts().sort_index().plot(ax=plt.gca())
ax.set_title("Data em que foi adicionado", fontsize=15)
Out[4]:
Por último, podemos identificar quais os diretores que possuem mais obras no catálogo. Para isso, realizamos a contagem dos diretores. Por padrão, o value_counts() já ordena a série em ordem decrescente de valor. Como são muitas obras e muitos diretores, vamos nos atentar apenas aos top 10 diretores mais prestigiados
In [5]:
df.director.value_counts().head(10).plot(kind="bar")
Out[5]: