- 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.
Tratamento de nulos
Decisão técnica: Alunos sem nota serão considerados com nota 0.0
df = df.fillna(0)
- Os alunos "Alice" e "Carlos", não fazem mais parte da turma. Sendo assim, remova-os da base de dados.
Remoção de Alice e Carlos
Localizamos os índices dos alunos antes de dar o drop
indices_para_remover = df.query('Nome == "Alice" or Nome == "Carlos"').index
df.drop(indices_para_remover, axis=0, inplace=True)
- Aplique um filtro que selecione apenas os alunos que foram aprovados.
Filtro de aprovados
Assumindo que a coluna 'Aprovado' já é booleana
df_aprovados = df[df['Aprovado'] == True].copy()
- Salve o DataFrame que possui apenas os alunos aprovados em um arquivo csv chamado "alunos_aprovados.csv".
4) Salvar o arquivo
df_aprovados.to_csv('alunos_aprovados.csv', index=False)
- 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.
Extra: Substituição de notas (correção de erro)
df_aprovados['Notas'] = df_aprovados['Notas'].replace(7.0, 8.0)
codigo fonte:
import pandas as pd
Carregando os dados
url = 'https://raw.githubusercontent.com/alura-cursos/pandas-conhecendo-a-biblioteca/main/desafios/alunos.csv'
df = pd.read_csv(url)
1) Tratamento de nulos
Decisão técnica: Alunos sem nota serão considerados com nota 0.0
df = df.fillna(0)
2) Remoção de Alice e Carlos
Localizamos os índices dos alunos antes de dar o drop
indices_para_remover = df.query('Nome == "Alice" or Nome == "Carlos"').index
df.drop(indices_para_remover, axis=0, inplace=True)
3) Filtro de aprovados
Assumindo que a coluna 'Aprovado' já é booleana
df_aprovados = df[df['Aprovado'] == True].copy()
Extra: Substituição de notas (correção de erro)
df_aprovados['Notas'] = df_aprovados['Notas'].replace(7.0, 8.0)
4) Salvar o arquivo
df_aprovados.to_csv('alunos_aprovados.csv', index=False)