import pandas as pd
import matplotlib.pyplot as plt
url = "https://raw.githubusercontent.com/alura-cursos/Estatisticas-Python-frequencias-medidas/refs/heads/main/dados/dados_desafio.csv"
df = pd.read_csv(url)
print(df.head())
print(f"O dataset possui {df.shape[0]} linhas e {df.shape[1]} colunas.")
df.info()
state_counts = df['UF'].value_counts(dropna=False)
print(state_counts)
ax = state_counts.plot(kind='barh', figsize=(8, 6))
ax.set(title='Distribuição de registros por Estado (UF)', xlabel='Quantidade de Registros', ylabel='Estado (UF)')
plt.tight_layout()
plt.show()
df['Sexo_categoria'] = pd.Categorical(df['Sexo'], categories=['Masculino', 'Feminino'])
mapa_cor = {1: 'Branca', 2: 'Preta', 3: 'Parda', 4: 'Amarela', 5: 'Indígena'}
df['Cor_categoria'] = pd.Categorical(df['Cor'].map(mapa_cor), categories=list(mapa_cor.values()))
anos = sorted(df['Anos.de.Estudo'].dropna().unique())
df['Anos_de_Estudo_categoria'] = pd.Categorical(df['Anos.de.Estudo'], categories=anos, ordered=True)
print(df[['Sexo_categoria', 'Cor_categoria', 'Anos_de_Estudo_categoria']].head())
income_min = df['Renda'].min()
income_max = df['Renda'].max()
print(f"A menor renda registrada é R$ {income_min:.2f} e a maior é R$ {income_max:.2f}")