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

(23. Python: Pandas: conhecendo a biblioteca) Desafio: bora praticar?

import pandas as pd

# Importando os dados
url = 'https://raw.githubusercontent.com/alura-cursos/pandas-conhecendo-a-biblioteca/main/desafios/alunos.csv'

dados = pd.read_csv(url, sep=',')

# Selecionando apenas colunas numéricas
colunas_numericas = dados.select_dtypes(include='number').columns

# Substituindo nulos apenas nas colunas numéricas por zero
dados[colunas_numericas] = dados[colunas_numericas].fillna(0)

# Visualizando resultado
print(dados)


# 1) Criando a coluna de pontos extras (40% da nota)
dados['Pontos_extras'] = dados['Notas'] * 0.4


# 2) Criando a coluna de notas finais
dados['Notas_finais'] = dados['Notas'] + dados['Pontos_extras']


# 3) Criando a coluna de aprovação final

# Primeira forma de resolver
dados['Aprovado_final'] = dados['Notas_finais'] >= 6

# Segunda forma de resolvar
# dados['Aprovado_final'] = dados['Notas_finais'].apply(lambda x: True if x >= 6 else False)


# Visualizando resultado
print(dados)


# 4) Selecionando alunos que antes estavam reprovados e agora foram aprovados

# Primeira forma de resolver
alunos_recuperados = dados[
     (dados['Notas'] < 6) &
     (dados['Aprovado_final'] == True)
]

# Segunda forma correta
# alunos_recuperados = dados[
#     dados.apply(
#         lambda x: x['Notas'] < 6 and x['Aprovado_final'] == True,
#         axis=1
#     )
# ]

# Exibindo apenas os alunos recuperados
print(alunos_recuperados)
1 resposta

Oi, Eduardo! Como vai?

Agradeço por compartilhar sua solução com a comunidade Alura. Trabalhar com dados usando a biblioteca Pandas é uma habilidade muito valorizada, e você demonstrou isso muito bem neste desafio.

Você organizou bem o código, desde a etapa de selecionando colunas numéricas e tratando os valores nulos, até a criando coluna de Notas_finais, a coluna de Pontos_extras e a coluna Aprovado_final. Perceber que existem diferentes caminhos para chegar ao mesmo resultado, como nas abordagens para filtrar os alunos_recuperados, mostra que você está evoluindo de maneira consistente no uso do Pandas.

Uma dica interessante para o futuro é utilizar o método query():


alunos_aprovados = dados.query('Notas_finais >= 6')

print(alunos_aprovados)

Nesse exemplo, o código filtra apenas os alunos com nota final maior ou igual a 6, deixando a consulta mais clara em determinados cenários. É mais uma alternativa para o seu repertório.

Qual das abordagens que você utilizou, com operadores lógicos ou com apply(), você achou mais intuitiva para trabalhar com filtros em DataFrames?

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