Aan de slagGa gratis aan de slag

Tracts en metropoolgebieden samenvoegen

Om je te laten focussen op hoe de merge-methode werkt, is er een functie aangeleverd die de Index of Dissimilarity berekent. (In de volgende oefening maak je deze functie zelf!)

Om deze functie toe te passen, moet je de MSA-identifiers toevoegen aan de DataFrame tracts. Je gebruikt state en county, die in beide DataFrames staan, als joinsleutels. Tot slot gebruik je stripplot van seaborn om de tien meest gesegregeerde metrogebieden te tonen.

De DataFrame tracts die je eerder hebt gebruikt is geladen. Bevolkingsgegevens per MSA zijn geladen als msa, en de eerste paar rijen zijn in de console weergegeven. Ten slotte is msa_def geladen met de counties waaruit elke MSA bestaat.

pandas en seaborn zijn geladen met de gebruikelijke aliassen.

Deze oefening maakt deel uit van de cursus

US Census-gegevens analyseren in Python

Cursus bekijken

Oefeninstructies

  • Gebruik de methode nlargest op de DataFrame msa om de 50 grootste metrogebieden op basis van "population" terug te geven.
  • Zowel tracts als msa_def hebben de kolommen "state" en "county". Gebruik de methode merge met de parameter on om op deze kolommen te joinen.
  • Gebruik de methode merge om msa en msa_D te joinen op de MSA-identifier.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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()
Code bewerken en uitvoeren