Olá, pessoal. Tudo bom?
Recentemente completei o curso 'Python para Data Science: Funções, Pacotes e Pandas básico' e resolvi praticar!
Tenho um projeto com uns amigos em que estamos estudando sobre os melhores filmes de terror de todos os tempos e eu resolvi tentar fazer esta pesquisa utilizando o que eu aprendi aqui na Alura.
Utilizei o Dataset do IMBd que baixei no Kaggle (está um pouco desatualizado mas o propósito maior foi a prática mesmo).
Estou colocando o código aqui abaixo e gostaria muito de saber se o código ficou bom, se tem algo para melhorar, dicas, sugestões, sei lá.
# Imports
import pandas as pd
# Abrindo os arquivos
data_filmes = pd.read_csv('IMDb_Movies/IMDb movies.csv')
data_notas = pd.read_csv('IMDb_Movies/IMDb ratings.csv')
# Transformando os gêneros em uma lista
data_filmes.genre = data_filmes.genre.str.split(',')
# Separando só os dados importantes para a pesquisa
data_filmes = data_filmes[['original_title','year', 'genre']]
data_notas = data_notas[['weighted_average_vote', 'mean_vote']]
# Concatenando os dois arquivos
dataset = pd.concat([data_filmes, data_notas], axis = 1)
# Colocando todos os filmes que possuam o gênero 'Horror' em uma nova lista
# E transformando num dataframe
dataset_horror = []
for z in range(len(dataset)):
for y in dataset.genre[z]:
if y.strip() == 'Horror':
dataset_horror.append(dataset.iloc[z].values)
dataset_horror = pd.DataFrame(dataset_horror)
# Filtrando os melhores filmes (média e média ponderada a partir de 8)
# Adicionando-os em uma nova lista e transformando num dataframe
filmes_para_assistir = []
for x in range(len(dataset_horror)):
if dataset_horror[3][x] >= 8 and dataset_horror[4][x] >= 8:
filmes_para_assistir.append(dataset_horror.iloc[x].values)
filmes_para_assistir = pd.DataFrame(filmes_para_assistir)
# Adicionando uma nova média das médias (???) para colocar os filmes
# Ordenados por este novo valor
for index, row in filmes_para_assistir.iterrows():
filmes_para_assistir.loc[index, 5] = (row[3] + row[4]) / 2
# Adicionando nomes às colunas, ordenando e arrumando o index
filmes_para_assistir.columns = ['Título', 'Ano', 'Gênero', 'Média ponderada', 'Média Aritmética', 'Média']
filmes_para_assistir.sort_values(by = 'Média', ascending = False, inplace = True)
filmes_para_assistir.index = range(filmes_para_assistir.shape[0])
# Exportando
filmes_para_assistir.to_csv('IMDb_Movies/Filmes_terror_para_assistir.csv', index = False, encoding = 'utf-8')
Ps.: Teve um bug na hora de exportar em que as acentuações não funcionaram : (