Da API à visualização: Group Quarters
Neste exercício, você vai investigar onde menores infratores estão encarcerados. Este exercício apresenta o conceito de populações em "group quarters", que inclui dormitórios universitários, unidades prisionais, casas de repouso, bases militares etc.
Você vai visualizar a porcentagem, por estado, de homens menores de idade encarcerados em unidades correcionais para adultos. As variáveis a solicitar são:
- PCT021005 - Masculino: Menores de 18 anos: População institucionalizada: Unidades correcionais para adultos
- PCT021015 - Masculino: Menores de 18 anos: População institucionalizada: Unidades juvenis: Unidades correcionais destinadas a adolescentes
requests já foi importado. O base_url para a requisição à API foi definido.
pandas e seaborn foram importados usando os aliases de sempre.
Este exercício faz parte do curso
Analisando dados do Censo dos EUA em Python
Instruções do exercício
- Complete a lista
get_varscom as duas variáveis desejadas - Use
astypepara converter as colunasin_adultein_juvenilepara inteiro - Calcule a porcentagem de menores em unidades correcionais para adultos: o numerador deve ser 100 vezes o número de menores em unidades
in_adult; o denominador deve ser a soma de menores nas unidadesin_adultein_juvenile - Ordene
statesporpct_in_adultem ordem decrescente, usandoinplace = True
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Specify variables and execute API request
get_vars = ["NAME", ____]
predicates["get"] = ",".join(get_vars)
r = requests.get(base_url, params=predicates)
# Construct DataFrame
col_names = ["name", "in_adult", "in_juvenile", "state"]
states = pd.DataFrame(columns=col_names, data=r.json()[1:])
states[["in_adult", "in_juvenile"]] = states[["in_adult", "in_juvenile"]].____
# Calculate percentage of incarcerated male minors in adult facilities
states["pct_in_adult"] = ____
states.sort_values(by = ____, ascending = ____, inplace = ____)
sns.stripplot(x = "pct_in_adult", y = "name", data = states)
plt.show()