Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida na linha com [~selecao]

Olá, na linha de código abaixo tentei substituir o isnull() por notnull() para obter diretamente os dados de interesse, porém a quantidade de dados obtidos não foi a mesma utilizando como mostrado na aula e não consegui entender o porque.

selecao = (dados['Tipo'] == 'Apartamento') & (dados['Condominio'].isnull())

dados = dados[~selecao]

Substituindo por:

selecao = (df['Tipo'] == 'Apartamento') & (df['Condominio'].notnull())

dados = dados[selecao]
1 resposta
solução!

Amigo, no primeiro caso podemos ler que o novo dataframe 'Dados' é todo o dataframe anterior EXCETO às linhas que são do TIPO apartamento e que o campo CONDOMÍNIO é nulo. Em outras palavras, são admitidas as linhas que tenham valores no campo TIPO como Casa, Quitinete etc, entretanto quando o valor neste campo for 'APARTAMENTO', seu correspondente no campo 'Condomínio' deve ser não nulo.

Quando você aplica o segundo filtro, você não pode pensar (e nem é de se esperar que pense) que o número seja o mesmo, pois o filtro diz que o novo dataframe 'Dados' agora SÓ ADMITE as linhas que são do tipo 'Apartamento' onde o campo 'Condomíno' é não nulo, DEIXANDO DE FORA, inclusive, linhas cujo os valores do campo 'TIPO' sejam 'Casa', 'Quitinete' etc. Portanto, não são filtros antagônicos, e sim definidamente não relacionados.

Você facilmente identificará isto que estou lhe explicando se executar o comando 'dados.head(15)' nos dois cenários que você nos trouxe. Observará que um dataframe traz outros valores para o campo TIPO que não só APARTAMENTO e o outro apenas valores 'APARTAMENTO' no campo TIPO.

Espero ter ajudado.