## Para praticar os métodos aprendidos no decorrer dessa aula e também aprender novos, vamos realizar algumas análises utilizando um arquivo csv diferente: alunos.csv.
import pandas as pd
from urllib.request import urlopen
import io
# Função que baixa um arquivo de dados da URL informada e carrega em um DataFrame do pandas,
# identificando automaticamente o formato do arquivo pela extensão (csv, xls, xlsx, json).
def carregar_dados(url):
extensao = url.split('.')[-1].lower()
try:
conteudo = urlopen(url).read()
except Exception as e:
raise RuntimeError(f'Erro ao acessar a URL: {e}')
match extensao:
case 'csv':
return pd.read_csv(io.BytesIO(conteudo), encoding='utf-8')
case 'xls' | 'xlsx':
return pd.read_excel(io.BytesIO(conteudo))
case 'json':
return pd.read_json(io.BytesIO(conteudo))
case _:
raise ValueError(f'Extensão de arquivo não suportada: .{extensao}')
# Carregar os dados
url = 'https://raw.githubusercontent.com/alura-cursos/pandas-conhecendo-a-biblioteca/main/desafios/alunos.csv'
dados = carregar_dados(url)
# Exibir a quantidade de linhas e colunas
print(f'Quantidade de linhas: {dados.shape[0]}')
print(f'Quantidade de colunas: {dados.shape[1]}')
# Nome das colunas
print('\nNome das colunas:')
print(dados.columns)
# Exibir as 7 primeiras linhas e as 7 últimas linhas
print('\nPrimeiras 7 linhas:')
print(dados.head(7))
print('Últimas 7 linhas:')
print(dados.tail(7))
# Tipos de dados de cada coluna
print('\nTipos de dados de cada coluna:')
print(dados.dtypes)
# Substituir valores ausentes ou NAN por zero, true por Aprovado e false por Reprovado
dadosatualizados = dados.replace({True: 'Aprovado', False: 'Reprovado'}).fillna(0)
# Exibir os dados atualizados
print('\nDados atualizados:')
print(dadosatualizados)
# Estatísticas descritivas com dados atualizados
print('\nEstatísticas descritivas:')
print(dadosatualizados.describe())