Netflix! What started in 1997 as a DVD rental service has since exploded into one of the largest entertainment and media companies.
Given the large number of movies and series available on the platform, it is a perfect opportunity to flex your exploratory data analysis skills and dive into the entertainment industry.
You work for a production company that specializes in nostalgic styles. You want to do some research on movies released in the 1990's. You'll delve into Netflix data and perform exploratory data analysis to better understand this awesome movie decade!
You have been supplied with the dataset netflix_data.csv
, along with the following table detailing the column names and descriptions. Feel free to experiment further after submitting!
The data
netflix_data.csv
Column | Description |
---|---|
show_id | The ID of the show |
type | Type of show |
title | Title of the show |
director | Director of the show |
cast | Cast of the show |
country | Country of origin |
date_added | Date added to Netflix |
release_year | Year of Netflix release |
duration | Duration of the show in minutes |
description | Description of the show |
genre | Show genre |
🚀 O código analisa a distribuição da duração dos filmes lançados na década de 90 e identifica aqueles que são curtos e pertencem ao gênero de ação.
📌 Resumo das Funcionalidades Utilizadas 1️⃣ Filtragem de filmes lançados na década de 90
movies_year_range = np.logical_and(movies['release_year'] >= 1990, movies['release_year'] < 2000) Uso: np.logical_and(cond1, cond2): Retorna uma lista booleana (True para filmes lançados entre 1990 e 1999 e False para os demais). Aplicação: Criar um filtro booleano para selecionar apenas os filmes da década de 90. 2️⃣ Criação de um subconjunto com ano de lançamento e duração
movies_netflix_90 = movies[['release_year', 'duration']] movies_netflix_90 = movies_netflix_90[movies_year_range] Uso: movies[['coluna1', 'coluna2']]: Seleciona apenas as colunas 'release_year' e 'duration'. movies_netflix_90[movies_year_range]: Aplica o filtro para manter apenas os filmes lançados na década de 90. Aplicação: Criar um subconjunto do catálogo contendo apenas essas informações essenciais. 3️⃣ Geração de histograma para visualizar a duração dos filmes
counts, edges, bars = plt.hist(sub_netflix_df['duration'], bins=10, edgecolor='black')
Adicionando labels em cada bin
for count, edge in zip(counts, edges[:-1]):
plt.text(edge + (edges[1] - edges[0]) / 2, count,
str(int(count)),
ha='center', va='bottom', fontsize=9, color='black')
plt.show() Uso: plt.hist(coluna, bins=n, edgecolor='black'): Cria um histograma com n intervalos de duração de filmes. plt.text(posição_x, posição_y, texto): Adiciona rótulos nos bins do histograma. Aplicação: Visualizar a distribuição da duração dos filmes da década de 90. 4️⃣ Identificação da duração mais frequente
duration = 105
Uso: Armazena a duração mais frequente dos filmes da década de 90.
Aplicação: Determinar o valor central da distribuição de duração dos filmes.
5️⃣ Subconjunto de filmes da década de 90
movies_90 = np.logical_and(movies['release_year'] >= 1990, movies['release_year'] < 2000) netflix_90 = movies[movies_90] Uso: np.logical_and(): Cria um filtro booleano para selecionar os filmes entre 1990 e 1999. movies[movies_90]: Aplica o filtro ao DataFrame. Aplicação: Criar um subconjunto do catálogo contendo apenas os filmes da década de 90. 6️⃣ Filtragem de filmes curtos (menos de 90 minutos)
short_neflix_90 = netflix_90[netflix_90['duration'] < 90] Uso: DataFrame[DataFrame['coluna'] < valor]: Filtra os filmes com duração inferior a 90 minutos. Aplicação: Criar um subconjunto apenas com filmes mais curtos. 7️⃣ Filtragem de filmes curtos de ação
short_netflix_action_90 = short_neflix_90[short_neflix_90['genre'] == "Action"] Uso: DataFrame[DataFrame['coluna'] == valor]: Filtra apenas os filmes do gênero "Action". Aplicação: Criar um subconjunto contendo apenas filmes curtos de ação da década de 90. 8️⃣ Contagem de filmes curtos de ação
short_movie_count = len(short_netflix_action_90)
print(short_movie_count)
Uso:
len(DataFrame): Conta o número de linhas no subconjunto filtrado.
print(): Exibe o resultado.
Aplicação: Descobrir quantos filmes de ação da década de 90 têm menos de 90 minutos.
# Importing pandas and matplotlib
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# Read in the Netflix CSV as a DataFrame
netflix_df = pd.read_csv("netflix_data.csv")
netflix_df
# Start coding here! Use as many cells as you like
movies = netflix_df[netflix_df['type'] == "Movie"]
movies #para mostrar como tabela tem que ser assim. se der o comando print, ele nao mostra a tabela estruturada
movies_year_range = np.logical_and(movies['release_year'] >= 1990,movies['release_year'] < 2000) #fazer o subset da tabela para os filmes lancados na decada de 90. Resultado é uma lista de True e False a ser aplicada posteriormente
movies_netflix_90 = movies[['release_year','duration']] #tabela apenas com release year e duration. ENTRE DOIS COLCHETES
movies_netflix_90 = movies_netflix_90[movies_year_range] #Realizara o subset de netflix_df para os casos True de year range, que eh o que buscamos. O resultado eh um subset do catalogo apenas com filmes da decada de 90
#print(min(sub_netflix_df['release_year'])) #check da menor data do subset
counts, edges, bars = plt.hist(sub_netflix_df['duration'], bins = 10 ,edgecolor='black')
# Adicionando labels em cada bin
for count, edge in zip(counts, edges[:-1]):
plt.text(edge + (edges[1] - edges[0]) / 2, count, # Posição do texto
str(int(count)), # Valor arredondado
ha='center', va='bottom', fontsize=9, color='black') # Estilo do texto
plt.show()
duration = 105
##### De acordo com o Histograma gerado, a duracao mais frequente dos filmes na decada de 90 foi em torno de 105 min ####
movies_90 = np.logical_and(movies['release_year'] >= 1990, movies['release_year'] < 2000)
#subset de filmes da decada de 90. Nao eh possivel colocar mais do que dois argumentos na clausula logical_and
netflix_90 = movies[movies_90]
short_neflix_90 = netflix_90[netflix_90['duration'] < 90]
short_netflix_action_90 = short_neflix_90[short_neflix_90['genre'] == "Action"]
#tamanho da tabela netflix_action_sm_90, que ja esta filtrada para conter apenas filmes de acao com duracao menor que 90 minutos e da decada de 90
short_movie_count = len(short_netflix_action_90)
print(short_movie_count)
##### 74 dos filmes de acao catalogo, da decada de 90, possuiam menos de 90 minutos. ####