1
resposta

[Projeto] desafio: métodos do Pandas e tratamentos e seleções utilizando um arquivo csv

  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.

Tratamento de nulos

Decisão técnica: Alunos sem nota serão considerados com nota 0.0

df = df.fillna(0)

  1. 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)

  1. 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()

  1. 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)

  1. 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)

1 resposta

Oi, Moacir! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Achei interessante como você organizou bem cada etapa do processo, desde o tratamento dos valores nulos até a filtragem e exportação dos dados. Continue assim!

Uma dica interessante para o futuro é explorar o método isin, que facilita a remoção de múltiplos valores:


import pandas as pd

df = df[~df['Nome'].isin(['Alice', 'Carlos'])]

print(df.head())

Esse código remove as linhas onde a coluna Nome contém "Alice" ou "Carlos", tornando a filtragem mais simples e legível.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Para saber mais:
Alura

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