De la API la vizualizare: locuințe colective
În acest exercițiu, vei analiza unde sunt încarcerați minorii delincvenți. Exercițiul introduce conceptul de populații în „locuințe colective" (group quarters), care include cămine studențești, unități de corecție, cămine de bătrâni, baze militare etc.
Vei vizualiza procentul, pe state, al minorilor de sex masculin încarcerați în unități de corecție pentru adulți. Variabilele de solicitat sunt:
- PCT021005 - Masculin: Sub 18 ani: Populație instituționalizată: Unități de corecție pentru adulți
- PCT021015 - Masculin: Sub 18 ani: Populație instituționalizată: Unități pentru minori: Unități de corecție destinate minorilor
requests a fost importat. base_url pentru solicitarea API a fost definit.
pandas și seaborn au fost importate folosind aliasurile uzuale.
Acest exercițiu face parte din cursul
Analiza datelor recensământului SUA în Python
Instrucțiuni pentru exercițiu
- Completează lista
get_varscu cele două variabile dorite - Folosește
astypepentru a converti coloanelein_adultșiin_juvenilela tip întreg - Calculează procentul minorilor în unitățile de corecție pentru adulți: numărătorul trebuie să fie de 100 de ori numărul minorilor din unitățile de corecție
in_adult; numitorul trebuie să fie suma minorilor din unitățilein_adultșiin_juvenile - Sortează
statesdupăpct_in_adultîn ordine descrescătoare, folosindinplace = True
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()