Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] error key FilmeId

Estou tentando digitar o codigo para realizar os exercicios propostos, porem sempre ocorre este erro quando digito este caminho:

por exemplo: notas.query("filmeId==1")["nota"].mean() # Média das notas de Toy Story notas.query("filmeId==2")["nota"].mean() # Média das notas de Jumanji

Sempre que utilizo a chave query retorna este tipo de erro:

KeyError: 'filmeId'

During handling of the above exception, another exception occurred:

KeyError Traceback (most recent call last) KeyError: 'filmeId'

The above exception was the direct cause of the following exception:

UndefinedVariableError Traceback (most recent call last) /usr/local/lib/python3.10/dist-packages/pandas/core/computation/scope.py in resolve(self, key, is_local) 242 return self.temps[key] 243 except KeyError as err: --> 244 raise UndefinedVariableError(key, is_local) from err 245 246 def swapkey(self, old_key: str, new_key: str, new_value=None) -> None:

UndefinedVariableError: name 'filmeId' is not defined

O que estou fazendo de errado?

1 resposta
solução!

Oi, Veronica! Como vai?

Esse erro que você está enfrentando está relacionado ao nome da coluna que você está tentando acessar. O erro KeyError: 'filmeId' indica que o Pandas não está encontrando a coluna filmeId no DataFrame notas.

Pode ser que você precise executar o código em que a coluna “movieId” (do dataset) foi renomeada para “filmeId”. Para verificar isso, você pode executar o código notas.head(), e analisar os nomes das colunas.

Vou deixar abaixo o código completo que usei:

import pandas as pd
notas = pd.read_csv("https://raw.githubusercontent.com/alura-cursos/data-science-analise-exploratoria/main/Aula_0/ml-latest-small/ratings.csv")
notas
notas.shape
# Código em que as colunas foram renomeadas:
notas.columns = ["usuarioId", "filmeId", "nota", "momento"]
notas.head()
notas["nota"].unique()
notas["nota"].value_counts()
notas["nota"].mean()
notas["nota"].plot(kind='hist')
notas["nota"].median()
mediana = notas["nota"].median()
media = notas["nota"].mean()
print(f"Mediana é {mediana}")
print(f"Média é {media}")
notas["nota"].describe()
import seaborn as sns

sns.boxplot(notas["nota"])
filmes = pd.read_csv("https://raw.githubusercontent.com/alura-cursos/data-science-analise-exploratoria/main/Aula_0/ml-latest-small/movies.csv")
filmes.columns = ["filmeId", "titulo", "generos"]
filmes.head()
notas.head()
notas.query("filmeId==1")["nota"].mean()
notas.query("filmeId==2")["nota"].mean()
medias_por_filme = notas.groupby("filmeId")["nota"].mean()
medias_por_filme.head()
medias_por_filme.plot(kind="hist")
sns.boxplot(medias_por_filme)
medias_por_filme.describe()

Espero ter ajudado!

Abraço ✨

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!