Van API naar visualisatie: Group quarters
In deze oefening onderzoek je waar jeugdige delinquenten worden vastgehouden. Deze oefening introduceert het concept van "group quarters"-populaties, waaronder studentenkamers, penitentiaire inrichtingen, verpleeghuizen, militaire bases, enz.
Je visualiseert per staat het percentage minderjarige jongens in volwassen penitentiaire inrichtingen. De variabelen die je moet opvragen zijn:
- PCT021005 - Mannen: Jonger dan 18 jaar: Geïnstitutionaliseerde populatie: Penitentiaire inrichtingen voor volwassenen
- PCT021015 - Mannen: Jonger dan 18 jaar: Geïnstitutionaliseerde populatie: Inrichtingen voor jeugdigen: Penitentiaire inrichtingen bedoeld voor jeugdigen
requests is geïmporteerd. De base_url voor het API-verzoek is gedefinieerd.
pandas en seaborn zijn geïmporteerd met de gebruikelijke aliassen.
Deze oefening maakt deel uit van de cursus
US Census-gegevens analyseren in Python
Oefeninstructies
- Vul de lijst
get_varsaan met de twee gewenste variabelen - Gebruik
astypeom de kolommenin_adultenin_juvenilenaar integer om te zetten - Bereken het percentage minderjarigen in penitentiaire inrichtingen voor volwassenen: de teller is 100 keer het aantal minderjarigen in
in_adult-inrichtingen; de noemer is de som van minderjarigen inin_adult- enin_juvenile-inrichtingen - Sorteer
statesoppct_in_adultin aflopende volgorde, metinplace = True
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()