Kom igångKom igång gratis

Från API till visualisering: gruppkvarter

I den här övningen undersöker du var unga lagöverträdare hålls i förvar. Övningen introducerar begreppet "gruppkvarter" (group quarters), som omfattar bland annat studentbostäder, kriminalvårdsanstalter, äldreboenden och militärbaser.

Du ska visualisera andelen frihetsberövade underåriga pojkar i vuxna kriminalvårdsanstalter, fördelat per delstat. Variablerna du ska hämta är:

  • PCT021005 – Pojkar: Under 18 år: Institutionaliserad befolkning: Kriminalvårdsanstalter för vuxna
  • PCT021015 – Pojkar: Under 18 år: Institutionaliserad befolkning: Ungdomsanstalter: Kriminalvårdsanstalter avsedda för unga

requests har importerats. base_url för API-anropet är redan definierad.

pandas och seaborn har importerats med de vanliga aliasen.

Den här övningen är en del av kursen

Analys av amerikansk folkräkningsdata i Python

Visa kurs

Övningsinstruktioner

  • Fyll i listan get_vars med de två önskade variablerna
  • Använd astype för att konvertera kolumnerna in_adult och in_juvenile till heltal
  • Beräkna andelen underåriga i kriminalvårdsanstalter för vuxna: täljaren ska vara 100 gånger antalet underåriga i in_adult-anstalter; nämnaren ska vara summan av underåriga i in_adult- och in_juvenile-anstalter
  • Sortera states efter pct_in_adult i fallande ordning med inplace = True

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()
Redigera och kör kod