ComenzarEmpieza gratis

De la API a la visualización: alojamientos colectivos

En este ejercicio, vas a investigar dónde están encarcelados los menores infractores. Este ejercicio introduce el concepto de poblaciones en "alojamientos colectivos" (group quarters), que incluye residencias universitarias, centros penitenciarios, residencias de ancianos, bases militares, etc.

Visualizarás el porcentaje, por estado, de hombres menores encarcelados en centros penitenciarios para adultos. Las variables que debes solicitar son:

  • PCT021005 - Hombres: Menores de 18 años: Población institucionalizada: Centros penitenciarios para adultos
  • PCT021015 - Hombres: Menores de 18 años: Población institucionalizada: Centros para menores: Centros penitenciarios destinados a menores

requests ya se ha importado. Se ha definido el base_url para la solicitud a la API.

pandas y seaborn se han importado con los alias habituales.

Este ejercicio forma parte del curso

Análisis de datos del Censo de EE. UU. con Python

Ver curso

Instrucciones del ejercicio

  • Completa la lista get_vars con las dos variables deseadas
  • Usa astype para convertir las columnas in_adult e in_juvenile a enteros
  • Calcula el porcentaje de menores en centros penitenciarios para adultos: el numerador debe ser 100 veces el número de menores en centros in_adult; el denominador debe ser la suma de menores en centros in_adult e in_juvenile
  • Ordena states por pct_in_adult en orden descendente, usando inplace = True

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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()
Editar y ejecutar código