Zacznij terazZacznij za darmo

Od API do wizualizacji: kwatery grupowe

W tym ćwiczeniu sprawdzisz, gdzie przetrzymywani są nieletni przestępcy. Ćwiczenie wprowadza pojęcie populacji zamieszkałych w tzw. „kwaterach grupowych" (ang. group quarters), do których zaliczają się m.in. akademiki, zakłady karne, domy opieki i bazy wojskowe.

Zwisualizujesz odsetek nieletnich mężczyzn osadzonych w dorosłych zakładach poprawczych – z podziałem na stany. Zmienne do pobrania to:

  • PCT021005 – Mężczyźni: poniżej 18 lat: Populacja instytucjonalna: Zakłady karne dla dorosłych
  • PCT021015 – Mężczyźni: poniżej 18 lat: Populacja instytucjonalna: Zakłady dla nieletnich: Zakłady poprawcze przeznaczone dla nieletnich

requests został już zaimportowany. Zdefiniowano również base_url dla żądania API.

pandas i seaborn zostały zaimportowane przy użyciu standardowych aliasów.

To ćwiczenie jest częścią kursu

Analiza danych spisowych USA w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Uzupełnij listę get_vars dwiema wymaganymi zmiennymi
  • Użyj astype, aby przekonwertować kolumny in_adult i in_juvenile na typ całkowity (integer)
  • Oblicz odsetek nieletnich w zakładach karnych dla dorosłych: licznik powinien być równy 100 razy liczba nieletnich w zakładach in_adult; mianownik powinien być sumą nieletnich w zakładach in_adult i in_juvenile
  • Posortuj states według kolumny pct_in_adult w kolejności malejącej, używając inplace = True

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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()
Edytuj i uruchom kod