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: float64Observe 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 :)