Solucionado (ver solução)

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!

Solucionado
(ver solução)
2
respostas

Desafio: bora praticar?

# 1) Verifique se a base de dados possui dados nulos e, caso tenha, realize o tratamento desses dados nulos da forma que achar mais coerente com a situação.

# Verificando a quantidade de dados nulos por coluna
print("Dados nulos antes do tratamento:")
print(df.isnull().sum())

# Tratamento: Preenchendo as notas nulas com 0.0
df['Notas'] = df['Notas'].fillna(0.0)

print("\nBase de dados após o tratamento de nulos:")
print(df)
# 2) Os alunos "Alice" e "Carlos", não fazem mais parte da turma. Sendo assim, remova-os da base de dados.

# Filtrando o DataFrame para manter apenas as linhas onde o Nome não seja 'Alice' nem 'Carlos'
df = df[~df['Nome'].isin(['Alice', 'Carlos'])]

print("Base de dados após a remoção de Alice e Carlos:")
print(df)
# 3) Aplique um filtro que selecione apenas os alunos que foram aprovados.

# Criando um novo DataFrame contendo apenas as linhas onde 'Aprovado' é True
df_aprovados = df[df['Aprovado'] == True]

print("Alunos aprovados:")
print(df_aprovados)
# 4) Salve o DataFrame que possui apenas os alunos aprovados em um arquivo csv chamado "alunos_aprovados.csv".

# Salvando o DataFrame de aprovados em formato CSV (index=False evita que uma coluna de índices seja criada)
df_aprovados.to_csv('alunos_aprovados.csv', index=False)

print("Arquivo 'alunos_aprovados.csv' salvo com sucesso!")
# Extra: Ao conferir as notas dos alunos aprovados, notamos que algumas notas estavam incorretas. As alunas que tiraram nota 7.0, na verdade, tinham um ponto extra que não foi contabilizado. Sendo assim, substitua as notas 7.0 da base de dados por 8.0. Dica: pesquise pelo método replace.

# Utilizando o método replace para corrigir as notas 7.0 para 8.0 na coluna 'Notas'
df_aprovados['Notas'] = df_aprovados['Notas'].replace(7.0, 8.0)

print("DataFrame de aprovados com as notas corrigidas:")
print(df_aprovados)
2 respostas
solução!

Olá, Estudante! Como vai?

Você resolveu bem as etapas do desafio, usando isnull().sum(), fillna(), isin(), filtros booleanos, to_csv() e replace(). A sequência mostra uma boa prática de tratamento e filtragem de dados com Pandas, passando pela limpeza da base, seleção dos alunos aprovados e exportação do resultado para CSV.

Qual parte do tratamento de dados você achou mais útil para aplicar em outras análises?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Achei mais útil a aplicação de filtros.

Obrigado pelo feedback!