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

(21. Python: Pandas: conhecendo a biblioteca) Desafio: salvando os dados filtrados

# Apartamentos que possuem 1 quarto e aluguel menor que 1200
df_1.to_csv('filtro_1.csv', index=False, sep=";")

# Apartamentos que possuem pelo menos 2 quartos, aluguel menor que 3000 e area maior que 70
df_2.to_csv('filtro_2.csv', index=False, sep=";")
1 resposta

Olá, Eduardo. Como vai?

Parabéns por concluir mais este desafio! A exportação de dados filtrados é uma etapa fundamental no dia a dia de um analista de dados, pois permite que você salve recortes específicos de uma base grande para enviar a outras equipes ou para usar em relatórios posteriores.

O seu uso do método .to_csv() está corretíssimo. Você aplicou duas boas práticas muito importantes:

  • O uso do index=False, que impede o Pandas de criar uma coluna sem nome com os índices numéricos do DataFrame no arquivo final.
  • A definição do separador como ponto e vírgula (sep=";"), o que é excelente para quem trabalha no Brasil, já que o Excel em português abre esse formato automaticamente sem quebrar o texto.

Para agregar ainda mais valor ao seu aprendizado sobre filtros e exportação no Pandas, quero compartilhar duas dicas que vão te ajudar a deixar seu código mais limpo e seguro:

1. Criando cópias explicitamente para evitar avisos (SettingWithCopyWarning)

Quando criamos DataFrames filtrados (como o seu df_1 e df_2), o Pandas muitas vezes não cria um novo objeto na memória, mas sim uma "visão" do DataFrame original.

Se no futuro você precisar fazer qualquer alteração nesses dados filtrados antes de exportar (como preencher um valor nulo ou criar uma coluna nova), o Python pode disparar um aviso em vermelho chamado SettingWithCopyWarning. Para blindar o seu código contra isso, a boa prática é usar o método .copy() logo após aplicar o filtro.

Veja um exemplo de como a estrutura ideal ficaria:

# Exemplo de boa prática na hora de aplicar o filtro
df_1 = df_original[(df_original['quartos'] == 1) & (df_original['aluguel'] < 1200)].copy()

# Agora a exportação fica 100% segura
df_1.to_csv('filtro_1.csv', index=False, sep=";")

2. Verificando os arquivos gerados direto pelo código

Uma dica de produtividade muito legal para conferir se a exportação deu certo — sem precisar sair do ambiente de desenvolvimento (como o Jupyter Notebook ou Google Colab) para abrir o arquivo manualmente — é ler as primeiras linhas do CSV logo após salvá-lo.

Você pode fazer isso rapidamente com o próprio Pandas:

# Salva o arquivo
df_2.to_csv('filtro_2.csv', index=False, sep=";")

# Lê e exibe as 5 primeiras linhas para conferência rápida
df_2_conferencia = pd.read_csv('filtro_2.csv', sep=";")
print(df_2_conferencia.head())

Isso garante um fluxo de trabalho mais rápido e te dá a certeza de que as colunas e os dados foram gravados exatamente como você planejou.

O seu código cumpre perfeitamente o que o exercício propôs. Continue praticando e avançando pelos capítulos do curso!

Espero que possa ter lhe ajudado!