Calcular D en un bucle
¿Es alto o bajo el Índice de Disimilitud de Georgia, de 0.544? Compáralo con Illinois (FIPS = 17), donde está Chicago.
En este ejercicio usaremos un bucle para calcular \(D\) para todos los estados y luego compararemos Georgia e Illinois.
Recuerda que la fórmula del Índice de Disimilitud es:
$$D = \frac{1}{2}\sum{\left\lvert \frac{a}{A} - \frac{b}{B} \right\rvert}$$
Se ha importado pandas con el alias habitual y se ha cargado el DataFrame tracts con las columnas de población "white" y "black". Las variables w y b se han definido con los nombres de las columnas "white" y "black".
Este ejercicio forma parte del curso
Análisis de datos del Censo de EE. UU. con Python
Instrucciones del ejercicio
- Usa el método
unique()sobre la columna"state"para crear una lista de códigos FIPS de estados. - Usa un bucle for para guardar cada elemento de
states(es decir, cada código FIPS) en una variable llamadastate. - Filtra el DataFrame
tractspor cada valor destatey asígnalo atmp. - Calcula \(D\) para cada estado aplicando la fórmula a
tmpy guarda el resultado en el diccionariostate_D.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Get list of state FIPS Codes
states = list(tracts["state"].____)
state_D = {} # Initialize dictionary as collector
for state in ____:
# Filter by state
tmp = ____
# Add Index of Dissimilarity to Dictionary
state_D[state] = 0.5 * sum(____)
# Print D for Georgia (FIPS = 13) and Illinois (FIPS = 17)
print("Georgia D =", round(state_D["13"], 3))
print("Illinois D =", round(state_D["17"], 3))