Tracts und Metropolregionen zusammenführen
Damit du dich auf die Funktionsweise von merge konzentrieren kannst, ist eine Funktion zur Berechnung des Index of Dissimilarity bereits für dich vorbereitet. (In der nächsten Übung wirst du diese Funktion selbst erstellen!)
Um diese Funktion anzuwenden, musst du die MSA-Kennungen zum DataFrame tracts hinzufügen. Als Join-Schlüssel verwendest du state und county, die in beiden DataFrames vorhanden sind. Am Ende nutzt du stripplot aus seaborn, um die zehn am stärksten segregierten Metropolregionen zu zeigen.
Der DataFrame tracts, den du bereits verwendet hast, ist geladen. Bevölkerungsdaten nach MSA sind als msa geladen, und die ersten Zeilen werden in der Konsole angezeigt. Schließlich ist msa_def mit den Countys geladen, aus denen jede MSA besteht.
pandas und seaborn wurden mit den üblichen Aliassen geladen.
Diese Übung ist Teil des Kurses
Analyse von US-Volkszählungsdaten mit Python
Anleitung zur Übung
- Verwende die Methode
nlargestauf dem DataFramemsa, um die 50 größten Metropolregionen nach"population"zurückzugeben. - Sowohl
tractsals auchmsa_defhaben die Spalten"state"und"county". Verwendemergemit dem Parameteron, um über diese Spalten zu joinen. - Verwende
merge, ummsaundmsa_Düber die MSA-Kennung zu joinen.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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()