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

Não estou conseguindo utilzar o método drop_duplicates()

Ao utilizar a linha de código,

list(dados['Tipo'].drop_duplicates())

o resultado que obtenho é:

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-44-210e27e860c1> in <module>
----> 1 list(dados['Tipo'].drop_duplicates())

~\Anaconda3\lib\site-packages\pandas\core\series.py in __getitem__(self, key)
   1066         key = com.apply_if_callable(key, self)
   1067         try:
-> 1068             result = self.index.get_value(self, key)
   1069 
   1070             if not is_scalar(result):

~\Anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_value(self, series, key)
   4728         k = self._convert_scalar_indexer(k, kind="getitem")
   4729         try:
-> 4730             return self._engine.get_value(s, k, tz=getattr(series.dtype, "tz", None))
   4731         except KeyError as e1:
   4732             if len(self) > 0 and (self.holds_integer() or self.is_boolean()):

pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_value()

pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_value()

pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas\_libs\index_class_helper.pxi in pandas._libs.index.Int64Engine._check_type()

KeyError: 'Tipo'
5 respostas

Olá Alexsandro,

A mensagem de erro está indicando que não está encontrando a coluna Tipo quando você faz dados['Tipo'], verifica então se está correto o nome, você pode listar o nome de todas as colunas executando dados.columns

Espero ter ajudado, qualquer dúvida é só falar!

Consegui utilizar o método, porém agora quando tento criar uma lista o jupyter acusa que o list() não é um objeto que pode ser chamado.

list(dados['Tipo'].drop_duplicates())
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-71-bd5c75df2f2b> in <module>
      1 dados.columns
----> 2 list(dados['Tipo'].drop_duplicates())

TypeError: 'list' object is not callable

Esse outro erro deve ser causado pela substituição do valor de list, provavelmente em alguma parte do seu código você está criando uma variável com o nome list, então quando você tenta chamar o método agora o python pensa que você está chamando a variável com o mesmo nome.

Se for isso mesmo, tudo que você tem que fazer é encontrar essa variável e mudar o nome para algo diferente de list

Após isso lembra de reiniciar o notebook e reexecutar todo o código do início. Se o problema continuar compartilha o seu código completo aqui.

Todas as minhas linhas de código no jupyter são essas:

import pandas as pd
dados = pd.read_csv('aluguel/aluguel.csv', sep =';')
dados.head(10)
dados.columns
residencial = ['Quitinete', 'Casa', 'Apartamento', 'Casa de Condomínio', 'Casa de Vila']
residencial
selecao = dados['Tipo'].isin(residencial)
selecao
dados_residencial = dados[selecao]
dados_residencial.head(10)
list(dados_residencial['Tipo'].drop_duplicates())
solução!

Olá Alexsandro, o seu código está correto, executou tudo sem problemas aqui.

Então se você reiniciar o notebook deve funcionar para você também. Vai no menu na opção Kernel -> Restart e então executa esse seu código novamente que vai funcionar sem erros.

Obs.: Mesmo que você apague a linha do código de uma variável, caso já tenha exeutado essa linha, a variável vai continuar existindo na memória, apenas reiniciando você vai limpar a memória do que já foi executado.