De l’API à la visualisation : établissements collectifs
Dans cet exercice, vous allez étudier où sont incarcérés les mineurs délinquants. L’exercice introduit la notion de population en « établissements collectifs » (group quarters), qui inclut les résidences universitaires, les établissements pénitentiaires, les maisons de retraite, les bases militaires, etc.
Vous allez visualiser, par État, la part de garçons mineurs incarcérés dans des établissements pénitentiaires pour adultes. Les variables à demander sont :
- PCT021005 - Hommes : moins de 18 ans : population institutionnalisée : établissements correctionnels pour adultes
- PCT021015 - Hommes : moins de 18 ans : population institutionnalisée : établissements pour mineurs : établissements correctionnels destinés aux mineurs
requests a été importé. Le base_url pour l’appel à l’API a été défini.
pandas et seaborn ont été importés avec leurs alias habituels.
Cet exercice fait partie du cours
Analyzing US Census Data in Python
Instructions
- Complétez la liste
get_varsavec les deux variables souhaitées - Utilisez
astypepour convertir les colonnesin_adultetin_juvenileen entiers - Calculez le pourcentage de mineurs dans des établissements correctionnels pour adultes : le numérateur doit être 100 fois le nombre de mineurs dans des établissements
in_adult; le dénominateur doit être la somme des mineurs dans des établissementsin_adultetin_juvenile - Triez
statesparpct_in_adultpar ordre décroissant, en utilisantinplace = True
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()