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

Desafio

Resolução do Desafio – Tratando e Filtrando Dados com Pandas

Para compreender melhor os conceitos apresentados nesta aula, procurei interpretar o desafio como uma situação real de gestão acadêmica. Em vez de focar apenas nos comandos, busquei entender qual problema cada etapa pretendia resolver.

Imagine que recebi uma planilha de estudantes contendo nomes, idades, notas e situação de aprovação. A partir dela, foram solicitadas algumas ações de organização e tratamento dos dados.

1. Verificar se existem informações faltando

O primeiro passo foi identificar se havia dados ausentes na planilha.

Utilizamos:

dados.isnull().sum()

Esse comando verifica quantos valores vazios existem em cada coluna.

Ao analisar o resultado, observamos que alguns estudantes não possuíam nota registrada.


2. Preencher os dados ausentes

Como a atividade sugeria que alunos sem nota poderiam ser considerados com nota zero, os valores vazios foram substituídos por 0.

Utilizamos:

dados = dados.fillna(0)

Interpretação:

Onde houver um valor vazio, substitua por 0.


3. Remover estudantes que não pertencem mais à turma

O exercício informa que Alice e Carlos não fazem mais parte da turma.

Primeiro localizamos esses registros:

alunos_a_remover = dados.query(
    'Nome == "Alice" | Nome == "Carlos"'
).index

Depois removemos essas linhas:

dados.drop(
    alunos_a_remover,
    axis=0,
    inplace=True
)

Interpretação:

Localize Alice e Carlos e remova seus registros da base de dados.


4. Selecionar apenas os estudantes aprovados

Agora precisamos visualizar somente os estudantes aprovados.

Criamos uma seleção:

selecao = dados['Aprovado'] == True

E aplicamos essa seleção:

alunos_aprovados = dados[selecao]

Interpretação:

Mostre apenas os alunos cuja situação seja "Aprovado".


5. Salvar a lista dos aprovados

Após filtrar os estudantes aprovados, salvamos esse resultado em um novo arquivo.

Utilizamos:

alunos_aprovados.to_csv(
    'alunos_aprovados.csv',
    index=False
)

Interpretação:

Crie um arquivo chamado "alunos_aprovados.csv" contendo apenas os estudantes aprovados.


6. Corrigir notas registradas incorretamente

O desafio informa que estudantes com nota 7,0 receberam um ponto extra que não havia sido contabilizado.

Assim, substituímos:

  • 7,0 → 8,0

Utilizando:

alunos_aprovados = alunos_aprovados.replace(
    7.0,
    8.0
)

Interpretação:

Sempre que encontrar uma nota 7,0, substitua por 8,0.


Síntese da Aprendizagem

Neste desafio, compreendi que o Pandas pode ser utilizado para realizar tarefas muito comuns na gestão e análise de dados:

  • identificar informações faltantes (isnull);
  • preencher dados ausentes (fillna);
  • localizar registros específicos (query);
  • remover registros (drop);
  • filtrar informações (seleção booleana);
  • salvar resultados em arquivos (to_csv);
  • corrigir valores incorretos (replace).

Ao adaptar mentalmente o exercício para uma situação educacional, consegui compreender melhor a finalidade de cada comando e perceber que o Pandas funciona como uma ferramenta de organização, limpeza e preparação dos dados antes de qualquer análise mais avançada.

1 resposta

Oii Patricia, tudo bem com você?

Obrigada por compartilhar sua resolução aqui no fórum! Gostei bastante da abordagem que você usou: contextualizar o desafio como uma situação real de gestão acadêmica faz toda a diferença para fixar o que cada comando faz na prática.

Sua síntese no final ficou muito bem organizada, mapeando cada função ao seu propósito. Isso é exatamente o tipo de raciocínio que diferencia quem só executa código de quem entende o que está fazendo.

Uma observação sobre o passo 6: o replace aplicado ao DataFrame inteiro vai substituir o valor 7.0 em qualquer coluna numérica, não apenas na coluna de notas. Se o DataFrame tivesse, por exemplo, uma coluna de idade com valor 7.0, ela também seria alterada. Para garantir mais precisão, vale considerar aplicar a substituição diretamente na coluna desejada:

alunos_aprovados['Nota'] = alunos_aprovados['Nota'].replace(7.0, 8.0)

Mas isso é um detalhe de boa prática para cenários com mais colunas. No contexto do desafio, sua solução funciona corretamente.

Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.

Bons estudos!

Sucesso

Imagem da comunidade