Resolução dos 4 desafios propostos:
- Criar coluna "Pontos_extras" (40% da nota atual)
- Criar coluna "Notas_finais" (nota + pontos extras)
- Criar coluna "Aprovado_final" (True se >= 6, False caso contrário)
- Selecionar alunos aprovados após pontos extras
"""
========== CARREGANDO OS DADOS ==========
print("\n" + "="*80)
print("CARREGANDO DADOS DOS ALUNOS")
print("="*80 + "\n")
df = pd.read_csv('/home/claude/alunos.csv')
print("Dataset original:")
print(df)
print(f"\nDimensões: {df.shape[0]} alunos e {df.shape[1]} colunas")
========== DESAFIO 1: PONTOS EXTRAS ==========
print("\n" + "="*80)
print("DESAFIO 1: Criando coluna 'Pontos_extras' (40% da nota atual)")
print("="*80 + "\n")
df['Pontos_extras'] = df['Nota'] * 0.40
print("Cálculo: Pontos_extras = Nota × 0.40")
print("\nResultado:")
print(df[['Aluno', 'Nota', 'Pontos_extras']])
========== DESAFIO 2: NOTAS FINAIS ==========
print("\n" + "="*80)
print("DESAFIO 2: Criando coluna 'Notas_finais' (nota + pontos extras)")
print("="*80 + "\n")
df['Notas_finais'] = df['Nota'] + df['Pontos_extras']
print("Cálculo: Notas_finais = Nota + Pontos_extras")
print("\nResultado:")
print(df[['Aluno', 'Nota', 'Pontos_extras', 'Notas_finais']])
========== DESAFIO 3: APROVAÇÃO ANTERIOR E FINAL ==========
print("\n" + "="*80)
print("DESAFIO 3: Criando colunas de aprovação")
print("="*80 + "\n")
Aprovação com base na nota original
df['Aprovado_anterior'] = df['Nota'] >= 6.0
Aprovação final
df['Aprovado_final'] = df['Notas_finais'] >= 6.0
print("Critério de aprovação: nota >= 6.0")
print("\nResultado:")
print(df[['Aluno', 'Nota', 'Notas_finais', 'Aprovado_anterior', 'Aprovado_final']])
========== DESAFIO 4: ALUNOS APROVADOS PELA SEGUNDA CHANCE ==========
print("\n" + "="*80)
print("DESAFIO 4: Alunos aprovados APÓS os pontos extras")
print("="*80 + "\n")
Selecionando: não aprovados antes (False) E aprovados depois (True)
alunos_segunda_chance = df[(~df['Aprovado_anterior']) & (df['Aprovado_final'])]
print(f"Alunos que NÃO estavam aprovados mas foram aprovados após pontos extras:\n")
print(alunos_segunda_chance[['Aluno', 'Nota', 'Pontos_extras', 'Notas_finais', 'Aprovado_anterior', 'Aprovado_final']])
print(f"\nTOTAL: {len(alunos_segunda_chance)} alunos ganharam uma segunda chance!")
========== ESTATÍSTICAS FINAIS ==========
print("\n" + "="*80)
print("ESTATÍSTICAS E RESUMO GERAL")
print("="*80 + "\n")
print(f"Total de alunos: {len(df)}")
print(f"\n✓ Aprovados ANTES dos pontos extras: {df['Aprovado_anterior'].sum()} alunos ({df['Aprovado_anterior'].sum()/len(df)*100:.1f}%)")
print(f"✓ Aprovados APÓS os pontos extras: {df['Aprovado_final'].sum()} alunos ({df['Aprovado_final'].sum()/len(df)*100:.1f}%)")
print(f"Alunos salvos pela segunda chance: {len(alunos_segunda_chance)} alunos")
print(f"\nMelhoria: {df['Aprovado_final'].sum() - df['Aprovado_anterior'].sum()} alunos a mais aprovados")
========== COMPARAÇÃO ANTES E DEPOIS ==========
print("\n" + "="*80)
print("COMPARAÇÃO: ANTES vs DEPOIS")
print("="*80 + "\n")
comparacao = df[['Aluno', 'Nota', 'Notas_finais', 'Aprovado_anterior', 'Aprovado_final']].copy()
comparacao['Mudança'] = comparacao['Aprovado_anterior'].astype(str) + ' → ' + comparacao['Aprovado_final'].astype(str)
comparacao['Status'] = comparacao.apply(
lambda row: 'APROVADO (novo)' if (row['Aprovado_anterior'] == False and row['Aprovado_final'] == True)
else ('PERMANECE APROVADO' if row['Aprovado_final'] == True
else 'PERMANECE REPROVADO'), axis=1
)
print(comparacao[['Aluno', 'Nota', 'Notas_finais', 'Status']])
========== DATAFRAME FINAL COMPLETO ==========
print("\n" + "="*80)
print("DATAFRAME FINAL COMPLETO")
print("="*80 + "\n")
print(df.to_string(index=False))
========== EXPORTANDO RESULTADO ==========
print("\n" + "="*80)
print("EXPORTANDO RESULTADOS")
print("="*80 + "\n")
Salvando o DataFrame completo
df.to_csv('/mnt/user-data/outputs/alunos_processado.csv', index=False)
print("✓ Arquivo salvo: alunos_processado.csv")
Salvando apenas os alunos com segunda chance
alunos_segunda_chance.to_csv('/mnt/user-data/outputs/alunos_segunda_chance.csv', index=False)
print("✓ Arquivo salvo: alunos_segunda_chance.csv")
print("\nDesafio concluído com sucesso!\n")