3
respostas

Problema com a função isin

Olá,

Estou fazendo o curso de Python Pandas: tratando e analisando dados e estou com um problema na aula em que o instrutor nos ensina a usar o isin().

O objetivo da aula em questão é filtrar a base de dados para mostrar apenas as linhas em que a coluna "Tipo" seja um imóvel residencial.

Para isso, primeiro eu usei o drop_duplicates para ver quais são os valores possíveis na coluna "Tipo".

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

A partir do retorno desse comando, eu selecionei todos os Tipos que eram imóveis residenciais e coloquei em uma nova lista, chamada residencial:

residencial = ['Quitinete',
 'Casa',
 'Apartamento',
 'Casa de Condomínio',
 'Casa de Vila']

Agora é onde começa o meu problema. Ao usar a função isin(), o comando me retorna apenas algumas linhas da tabela de dados.

Esse é o meu código:

dados['Tipo'].isin(residencial)

E essa é a minha saída:

0         True
1         True
2        False
3         True
7         True
16       False
17       False
29       False
80       False
83       False
117       True
159      False
207      False
347      False
589      False
2157     False
3354     False
4379     False
4721     False
6983     False
9687     False
23614    False
Name: Tipo, dtype: bool

Não estou entendo porque ele está mostrando apenas algumas linhas de toda a tabela.

3 respostas

Olá Victor,

Normalmente quando o resultado é muito grande ele só mostra algumas linhas, mas pelo índice do seu resultado parece que tem algo errado mesmo.

Provavelmente deve ter acontecido alguma alteração no df dados, testa por favor se reiniciando o jupyter (ou colab) e reexecutando todo o código do início até essa parte resolve o problema.

Olá Lucas,

Tentei executar o código todo no Jupyter novamente e não funcionou. Imprimi também o DataFrame "dados" logo acima da linha dados['Tipo'].isin(residencial) e ele exibe normalmente o df completo.

O que funcionou para mim foi criar um novo notebook e colocar apenas o código necessário para essa aula (estava fazendo todo o relatório em apenas um notebook).

Enfim, consegui fazer aquela aula, mas mesmo assim gostaria de saber o porque de o mesmo código funcionar em um notebook "limpo" mas não no meu notebook com as anotações de todas as aulas.

Se alguém puder me ajudar, desde já agradeço.

Realmente bem estranho acontecer isso, mas percebi agora que a saída do seu .isin() segue os mesmos índices de tipos_de_imovel criado na aula 02, deve ter acontecido alguma alteração nessa parte que afetou o resultado atual.