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
Övningsinstruktioner
- Fyll i listan
get_varsmed de två önskade variablerna - Använd
astypeför att konvertera kolumnernain_adultochin_juveniletill 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 iin_adult- ochin_juvenile-anstalter - Sortera
statesefterpct_in_adulti fallande ordning medinplace = 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()