Unir tracts y áreas metropolitanas
Para centrarte en cómo funciona el método merge, te hemos proporcionado una función que calcula el Índice de Disimilitud. (¡En el próximo ejercicio crearás esta función tú mismo!)
Para aplicar esta función, necesitas añadir los identificadores de MSA al DataFrame tracts. Usarás state y county, presentes en ambos DataFrames, como claves de unión. Al final, usarás el método stripplot de seaborn para mostrar las diez áreas metropolitanas con más segregación.
El DataFrame tracts que has usado anteriormente está cargado. Los datos de población por MSA están cargados como msa, y las primeras filas se muestran en la consola. Por último, msa_def está cargado con los condados que componen cada MSA.
pandas y seaborn se han cargado con los alias habituales.
Este ejercicio forma parte del curso
Análisis de datos del Censo de EE. UU. con Python
Instrucciones del ejercicio
- Usa el método
nlargesten el DataFramemsapara devolver las 50 áreas metropolitanas más grandes por"population". - Tanto
tractscomomsa_deftienen las columnas"state"y"county". Usa el métodomergecon el parámetroonpara unir por estas columnas. - Usa el método
mergepara unirmsaymsa_Dusando el identificador de la MSA.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Find identifiers for 50 largest metros by population
msa50 = list(msa.____["msa"])
# Join MSA identifiers to tracts, restrict to largest 50 metros
msa_tracts = pd.merge(____, ____, on = ____)
msa_tracts = msa_tracts[msa_tracts["msa"].isin(msa50)]
# Calculate D using custom function, merge back into MSA
msa_D = dissimilarity(msa_tracts, "white", "black", "msa")
msa = pd.merge(msa, msa_D, ____, ____)
# Plot ten most segregated metros
sns.stripplot(x = "D", y = "name", data = msa.nlargest(10, "D"))
plt.show()