3
respostas

Meu código esta com erro na parte do DataFrame de dados residenciais

Primeiro criei a 1° variavel:

residencial = ['Apartamento', 'Casa', 'Casa de Condomínio', 'Casa de Vila', 'Quitinete']
``
selecao = dados['Tipo'].isin(residencial).head(10)
selecao

Por fim, efetuo o codigo baixo para me apresentar somente os dados que forem True

dados_residencial = dados[selecao]
dados_residencial

O seguinte erro acontece:

Alguem sabe me dizer o motivo?

3 respostas

Olá Felipe, tudo bem? Espero que sim!

Para conseguir passar uma Series booleana como filtragem para os dados, a Series precisa ter a mesma quantidade de linhas que o conjunto de dados, visto que cada um dos elementos do conjunto de dados será escolhido dependendo se o elemento com mesmo índice na Series tem como valor True ou False.

Ao utilizar o head(10) ao final da seleção, foram selecionados somente os 10 primeiros registros e o conjunto de dados possui mais do que 10 linhas, sendo impossível realizar a filtragem.

O instrutor utilizou o head(10) somente para fazer uma checagem com os dados iniciais do conjunto de dados. Após fazer a checagem, ele salvou na variável selecao toda a Series booleana sem o uso do head(10). Portanto o código deve ficar da seguinte forma:

residencial = ['Apartamento', 'Casa', 'Casa de Condomínio', 'Casa de Vila', 'Quitinete']
selecao = dados['Tipo'].isin(residencial)
dados_residencial = dados[selecao]
dados_residencial

Espero que tenha tirado sua dúvida.

Estou à disposição. Bons estudos!

O meu estava dando esse mesmo erro, mas eu não estava usando o .head()

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

Mas era por causa daquela VÍRGULA depois de "Casa de Vila", se alguem teve esse mesmo problema e não foi por causa do head, pode ser a vírgula!

Na verdade o meu problema era o head mesmo, provavelmente eu não havia rodado a célula nova sem ele