Estava extrapolando as análises e gostaria de saber como é possível gerar uma tabela ou gráfico contendo os filmes que obtiveram média 5
Estava extrapolando as análises e gostaria de saber como é possível gerar uma tabela ou gráfico contendo os filmes que obtiveram média 5
Oii Et, tudo certinho por aí?
Para fazermos isso, primeiramente precisamos agrupar os nossos dados e calcular a média das notas, conforme o professor faz em determinado momento do curso. Essa parte, pode ser realizada utilizando o groupby
para agrupar os dados e o mean
para calcular as médias das notas, observe:
import pandas as pd
# importando os dados
notas = pd.read_csv("https://raw.githubusercontent.com/alura-cursos/introducao-a-data-science/aula0/aula0/ml-latest-small/ratings.csv")
notas.columns = ["usuarioID", "filmeID", "nota", "momento"]
# agrupando os dados e calculando a média
medias_por_filme = notas.groupby('filmeID').mean().nota
# visualizando as 5 primeiras linhas
medias_por_filme.head()
Resultado:
filmeID
1 3.920930
2 3.431818
3 3.259615
4 2.357143
5 3.071429
Name: nota, dtype: float64
Observe que temos uma Series como resultado. Para transformarmos ela em um dataframe, podemos utilizar o método to_frame
:
medias_por_filme = medias_por_filme.to_frame()
# visualizando as 5 primeiras linhas
medias_por_filme.head()
Resultado:
filmeID | nota |
---|---|
1 | 3.92093 |
2 | 3.43182 |
3 | 3.25962 |
4 | 2.35714 |
5 | 3.07143 |
Agora temos uma tabela com todas as médias das notas de cada um dos filmes. Para selecionar apenas aqueles filmes que possuem essa média igual a 5, podemos fazer uma seleção:
df_nota_igual_5 = medias_por_filme[medias_por_filme['nota'] == 5]
# visualizando as 5 primeiras linhas
df_nota_igual_5.head()
Resultado:
filmeID | nota |
---|---|
53 | 5 |
99 | 5 |
148 | 5 |
467 | 5 |
495 | 5 |
Espero que isso te ajude. Caso tenha alguma dúvida, ou esteja se referindo a alguma outra base de dados utilizada no curso, me avisa aqui que estou à disposição para ajudar :)