O banco de dados para esta atividade é o “IMDb Movie Data”, que possui informações sobre filmes, atores, diretores, gêneros e outros. Para os arquivos indicados abaixo, considere que o símbolo \N representa valores faltantes. Observe com cuidado a extensão dos arquivos para uma indicação do formato do mesmo.
1. title.basics.tsv.gz (Informações Básicas dos Filmes)
Categoria de trabalho da pessoa (ex: actor, director)
job
Função específica desempenhada (para não-atores)
characters
Personagens interpretados (para atores)
Atividade
Utilizando apenas operações por meio da biblioteca polars, responda:
Quais são os 5 filmes com as maiores notas (averageRating)? Apresente uma solução capaz de desempatar os filmes baseando-se no número de votos recebidos.
Qual é o gênero mais frequente entre os filmes com nota maior que 8?
Quais são os 3 atores/atrizes que mais participaram de filmes com nota maior que 7.5?
## Q1: top5 com as maiores notastop5 = ( ratings.join(basics, on ="tconst") .sort(["averageRating", "numVotes"], descending =True) .select(["primaryTitle", "numVotes", "averageRating"]) .head(5))print(top5)
## Q2: genero mais frequente entre filmes com nota > 8genres5 = ( ratings.filter(pl.col("averageRating") >8) .join(basics, on ="tconst", how ="inner") .select(["primaryTitle", "genres", "averageRating"]) .group_by("genres").agg(pl.col("genres").len().alias("n")) .sort("n", descending =True).head(5))print(genres5)
## Q3 top3 atores que mais particip de filmes com notas > 7.5actors3 = ( ratings.filter(pl.col("averageRating") >7.5) .join(principals.filter(pl.col("category").is_in(["actor", "actress"])), on ="tconst", how ="inner") .group_by("nconst").agg(pl.count("nconst").alias("n")) .sort("n", descending =True).head(3))print(actors3)