1
resposta

Erro .unique()

Antes de plotar o gráfico o comando abaixo deu certo.

df_imoveis_nao_comerciais.Tipo.unique()
df_imoveis_nao_comerciais = df_imoveis_nao_comerciais.groupby('Tipo')[['Valor']].mean().sort_values('Valor')
df_imoveis_nao_comerciais.plot(kind='barh', figsize=(14,10), color = 'gray')

plotei o gráfico e depois chamei novamente o comando unique e deu esse erro

df_imoveis_nao_comerciais.Tipo.unique()

AttributeError Traceback (most recent call last)
/tmp/ipython-input-1584319472.py in <cell line: 0>()
----> 1 df_imoveis_nao_comerciais.Tipo.unique()

/usr/local/lib/python3.12/dist-packages/pandas/core/generic.py in getattr(self, name)
6297 ):
6298 return self[name]
-> 6299 return object.getattribute(self, name)
6300
6301 @final

AttributeError: 'DataFrame' object has no attribute 'Tipo'

1 resposta

Oi Marianna, tudo bem?

O erro que você está recebendo, AttributeError: 'DataFrame' object has no attribute 'Tipo', indica que a coluna 'Tipo' não está mais presente no DataFrame após a operação groupby.

Quando você executa df_imoveis_nao_comerciais.groupby('Tipo')[['Valor']].mean().sort_values('Valor'), o resultado é um DataFrame onde 'Tipo' se torna o índice, e não uma coluna. Por isso, ao tentar acessar df_imoveis_nao_comerciais.Tipo.unique(), você recebe um erro, pois 'Tipo' não é mais uma coluna acessível diretamente.

Para resolver isso, você pode redefinir o índice do DataFrame após o groupby para que 'Tipo' volte a ser uma coluna. Aqui está uma maneira de fazer isso:

df_imoveis_nao_comerciais = df_imoveis_nao_comerciais.groupby('Tipo')[['Valor']].mean().sort_values('Valor').reset_index()

Depois de redefinir o índice, você deve conseguir acessar df_imoveis_nao_comerciais.Tipo.unique().

Espero ter ajudado.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

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