import pandas as pd
import matplotlib.pyplot as plt
from io import StringIO
raw_csv = """Nome,Idade,Notas,Aprovado Ary,20,7.5,True Ana,18,,False Cátia,27,2.5,False Denis,18,5.0,False Beto,21,10.0,True Bruna,23,,False Dara,21,7.0,True Carlos,19,6.0,True Alice,35,5.6,False Vitor,28,,False Daniel,21,,False Igor,24,4.5,False Sthefanie,26,9.5,True Mirla,25,9.0,True Paulo,37,,False Mylena,29,7.0,True Lucas,33,,False Nadia,34,8.0,True"""
tokens = raw_csv.split()
header = tokens[0].split(',')
rows = [tok.split(',') for tok in tokens[1:]]
df = pd.DataFrame(rows, columns=header)
df['Idade'] = pd.to_numeric(df['Idade'], errors='coerce')
df['Notas'] = pd.to_numeric(df['Notas'], errors='coerce')
df['Aprovado'] = df['Aprovado'].map({'True': True, 'False': False})
print("Primeiras 7 linhas:")
print(df.head(7))
print("\nÚltimas 5 linhas:")
print(df.tail())
print(f"\nO DataFrame possui {df.shape[0]} linhas e {df.shape[1]} colunas.")
print("\nInformações do DataFrame:")
df.info()
print("\nEstatísticas descritivas:")
print(df.describe())
aprov_counts = df['Aprovado'].value_counts()
aprov_counts.plot(kind='bar')
plt.title('Distribuição de Aprovados e Reprovados')
plt.xlabel('Aprovado')
plt.ylabel('Quantidade de Alunos')
plt.show()