НачатьНачать бесплатно

От API к визуализации: коллективные жилые помещения

В этом упражнении вы исследуете, где содержатся несовершеннолетние правонарушители. Здесь вводится понятие «коллективных жилых помещений» (group quarters) — категории, включающей студенческие общежития, исправительные учреждения, дома престарелых, военные базы и т. д.

Вы визуализируете долю несовершеннолетних лиц мужского пола, содержащихся в учреждениях для взрослых, по штатам. Переменные для запроса:

  • PCT021005 — мужчины: до 18 лет: институционализированное население: исправительные учреждения для взрослых
  • PCT021015 — мужчины: до 18 лет: институционализированное население: учреждения для несовершеннолетних: исправительные учреждения, предназначенные для несовершеннолетних

Библиотека requests уже импортирована. Переменная base_url для API-запроса определена.

Библиотеки pandas и seaborn импортированы со стандартными псевдонимами.

Это упражнение является частью курса

Анализ данных переписи населения США в Python

Посмотреть курс

Инструкции к упражнению

  • Дополните список get_vars двумя нужными переменными
  • Используйте astype, чтобы преобразовать столбцы in_adult и in_juvenile к целочисленному типу
  • Вычислите долю несовершеннолетних в исправительных учреждениях для взрослых: числитель — это 100, умноженное на количество несовершеннолетних в учреждениях in_adult; знаменатель — сумма несовершеннолетних в учреждениях in_adult и in_juvenile
  • Отсортируйте states по столбцу pct_in_adult в порядке убывания, используя inplace = True

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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()
Редактировать и запускать код