Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resposta

Olá! Tudo bem?

Segue abaixo, a resolução do exercício:

imoveis_com_suite = dados.query('Suites >= 1')
print(imoveis_com_suite)

1 resposta

Olá, Nicole. Tudo bem?

Parabéns pela resolução do exercício! O seu código está perfeito e direto ao ponto.

O método .query() do Pandas é uma das ferramentas mais elegantes para realizar filtros em DataFrames, pois permite que a gente escreva as condições em formato de string, com uma sintaxe muito mais limpa e próxima da linguagem humana (e do próprio SQL), se comparada à indexação booleana tradicional (que seria dados[dados['Suites'] >= 1]).

Para complementar o seu estudo e trazer uma boa prática de manipulação de dados, separei uma dica sobre como o Pandas gerencia a memória nessas seleções:

Cópia vs. Visão (View)

Quando executamos uma seleção usando o .query(), o Pandas cria um novo DataFrame contendo apenas as linhas que atendem à nossa condição (Suites >= 1).

Se o seu objetivo daqui para frente for apenas visualizar ou exportar esses dados filtrados, o seu código com o print() é mais do que suficiente. Contudo, se você pretender fazer alterações nesse novo DataFrame (como criar uma coluna nova ou modificar algum valor), o Pandas pode disparar um aviso de segurança clássico chamado SettingWithCopyWarning.

Para evitar esse aviso e garantir que o Python entenda que imoveis_com_suite é um objeto totalmente independente do seu DataFrame dados original, uma boa prática de engenharia de dados é adicionar o método .copy() no final da expressão:

# Garante a criação de um novo DataFrame isolado na memória
imoveis_com_suite = dados.query('Suites >= 1').copy()

Parabéns pela consistência nos exercícios do curso! Continue explorando os métodos do Pandas para tornar suas análises cada vez mais eficientes.

Espero que possa ter lhe ajudado!