Unindo tratos censitários e áreas metropolitanas
Para focar em como o método merge funciona, uma função que calcula o Índice de Dissimilaridade já foi fornecida para você. (Você vai criar essa função no próximo exercício!)
Para aplicar essa função, você precisa adicionar os identificadores de MSA ao DataFrame tracts. Você vai usar state e county, presentes em ambos os DataFrames, como chaves de junção. Ao final, você vai usar o método stripplot do seaborn para mostrar as dez áreas metropolitanas mais segregadas.
O DataFrame tracts que você usou anteriormente está carregado. Os dados de população por MSA estão carregados como msa, e as primeiras linhas são exibidas no console. Por fim, msa_def está carregado com os condados que compõem cada MSA.
pandas e seaborn foram carregados com os aliases de sempre.
Este exercício faz parte do curso
Analisando dados do Censo dos EUA em Python
Instruções do exercício
- Use o método
nlargestno DataFramemsapara retornar as 50 maiores áreas metropolitanas por"population". - Tanto
tractsquantomsa_deftêm as colunas"state"e"county". Use o métodomergecom o parâmetroonpara fazer a junção nessas colunas. - Use o método
mergepara unirmsaemsa_Dpelo identificador da MSA.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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()