Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

erro ao plotarr gráfico

Olá, tem algo dando erradop no meu código

#### AULA 1

##linkando com google drive
from google.colab import drive ## ligação com o google drive 
drive.mount('/content/gdrive')


### importando  libries 
import pandas as pd
import seaborn as sns
import matplotlib.pyplot  as plt ##librie gereal de gráficos 


pd.read_csv('gdrive/My Drive/ratings.csv')  ##lendo dados

## começa a particionar o dataset

notas = pd.read_csv('gdrive/My Drive/ratings.csv') 
notas.head() # chama o cabeçalho
notas.shape ## tamanho da tabela (linha, coluna)
notas.columns = ["usuarioId", "filmeId", "nota", "momento"]  #altera oo nome das colunas
notas.head()
notas["nota"]  #chamando a coluna notas 
notas.nota #maneira padrão de chamar uma coluna


## vizualizção  dos dados 
notas["nota"].unique()  ## retorna os  valores presentes em uma coluna, por exemplo quais as notas atribuidas
notas["nota"].value_counts()  ## retorna uma tabela com o número de vezes que que cada nota foi atribuida
notas["nota"].mean()  ## retorna a média

print(notas.nota.mean())  ##adicionar a function print para que sejam colocados na tela todos os valores
print(notas.nota.median()) ##function da mediana
print("Media",notas.nota.mean())  #imprime com nome entre aspas

## manipulação dos dados 
notas.nota.plot(kind = "hist")  #plot genérico -> notas.nota.plot() 
notas.nota.describe()  ## resumo dos dados 


sns.boxplot(notas.nota)

#### AULA 2

#filmes = pd.read_csv("gdrive/MyDrive/movies.csv")
pd.read_csv('/content/movies.csv')
filmes.columns = ["filmeId", "titulo", "generos"]
filmes.head()

notas.query("filmeId==1")  ### function para encontrar por categoria 
notas.query("filmeId==1").nota  ## desssa maneira entrega apenas a coluna nota 
notas.query("filmeId==1").nota.mean() ## forma de acrescentar functions de descritva
notas.groupby("filmeId").mean()  ### agrupar dados por categoria
medias_filme = notas.groupby("filmeId").mean().nota

medias_filme.plot(kind = 'hist')
sns.boxplot(medias_filme)
sns.boxplot(y=medias_filme) ## box plot na vertical indica o eixo x
sns.distplot(medias_filme, bins=10)  ### bins é o parametro que determina a quantidade de blocos do histograma

plt.hist(medias_filme)
plt.title("Histograma das médias dos filmes") #colocando titulo no grafiico


#### AULA 3
##TIPO DE VARIÁVEIS
tmdb = pd.read_csv('/content/tmdb_5000_movies.csv')
tmdb.original_language.unique()
tmdb.original_language.value_counts()
tmdb["original_language"].value_counts().to_frame() ## function que transforma o indice em data frame
contagem_lingua = tmdb["original_language"].value_counts().to_frame().reset_index() ## function que reseta o index, ps o index inicia no 0
contagem_lingua.columns = ["original_language", "total"]
contagem_lingua.head()

sns.barplot(x="original_language", y="total", data =  contagem_lingua)  ## função plot de barra 
sns.catplot(x = "original_language", kind ="count", data = tmdb)

import matplotlib.pyplot  as plt ##librie gereal de gráficos 

plt.pie(contagem_lingua["total"], labels = contagem_lingua["original_language"]) ## grafico de pizza, 

total_lingua =tmdb.original_language.value_counts()
total_geral = total_lingua.sum()
ingles= total_lingua.loc["en"]
total_resto = total_geral- ingles
print(total_resto, ingles)

##criando um dataframe manual

dados = {
    "lingua" : ["ingles", "outros"], ## coloca os nomes das colunas
    "total": [ingles, total_resto] ## coloca os valore nas colunas 
    }

pd.DataFrame(dados)

sns.barplot(data = dados, x= "lingua", y ="total")

### AULA QUATRO 
plt.pie(dados["total"], labels = dados["lingua"]) 

## seccionando o df

tmdb.query("original_language != 'en'")
total_outros_filmes = tmdb.query("original_language != 'en'").value_counts()
sns.catplot(x="original_language", data=total_outros_filmes, kind = "count")


### AULA 5
sns.catplot(x="original_language", data=total_outros_filmes, kind = "count", aspect=2)  ## function aspect forma do gráfico olhar documentação)
sns.catplot(x="original_language", data=total_outros_filmes, kind = "count", aspect=2,
            order= total_outros_filmes.index)



e está entregando o seguinte erro

ValueError: Could not interpret input 'original_language'

4 respostas

E aí Mariane! Tudo tranquilo?

Na seguinte linha:

total_outros_filmes = tmdb.query("original_language != 'en'").value_counts()

você está criando uma Series que conta quantas vezes cada valor único existente nas colunas desse dataframe aparece. E essa Series, não possui uma coluna nomeada "original_language", possui apenas a quantidade de vezes que cada valor único pertencente a essa coluna aparece, por isso, ao tentar gerar o gráfico, ocorre o erro.

Para que funcione, você deve atribuir a variável total_outros_filmes apenas a parte do código que seleciona os elementos que possuem a língua inglesa.

total_outros_filmes = tmdb.query("original_language != 'en'")

Após fazer isso, ao tentar plotar o gráfico sns.catplot(x="original_language", data=total_outros_filmes, kind = "count") tudo deve ocorrer corretamente.

Qualquer dúvida estou por aqui, ok?

Bons estudos!

Olá, fiz a correção mas continua o mesmo erro. Deixo aqui um link do meu código, agradeço https://colab.research.google.com/drive/1ZMeP_hXfDMqgzSn-ZUhL8LkA8OF6pQ8Q?usp=sharing

solução!

Oi Mariane!

Analisando seu código aqui, eu percebi que você adicionou a linha total_outros_filmes = tmdb.query("original_language != 'en'"). Entretanto, você não excluiu a linha total_outros_filmes = tmdb.query("original_language != 'en'").value_counts():

Imagem contendo uma parte do código da aluna com uma setinha vermelha apontando para a linha contendo o código: total_outros_filmes = tmdb.query('' original_language != 'en' '').value_counts()

Quando você faz dessa forma, o que fica armazenado na variável total_outros_filmes é a mesma Series resultante da funçãotmdb.query("original_language != 'en'").value_counts(), conforme aconteceu anteriormente.

Para que seja executado corretamente, você deve excluir essa linha ou comentá-la:

Imagem contendo uma parte do código da aluna com a linha contendo o código: total_outros_filmes = tmdb.query('' original_language != 'en' '').value_counts(), comentada

Qualquer coisa vamos nos falando por aqui, ok?

Bons estudos!

Resolveu. Muito obrigada pela sua ajuda