Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Vul de lijst get_vars aan met de twee gewenste variabelen
  • Gebruik astype om de kolommen in_adult en in_juvenile naar 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 in in_adult- en in_juvenile-inrichtingen
  • Sorteer states op pct_in_adult in aflopende volgorde, met inplace = 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()
Code bewerken en uitvoeren