Łączenie obszarów spisowych z obszarami metropolitalnymi
Aby skupić się na działaniu metody merge, przygotowano dla ciebie funkcję obliczającą indeks podobieństwa (Index of Dissimilarity). (W następnym ćwiczeniu napiszesz tę funkcję samodzielnie!)
Aby zastosować tę funkcję, musisz dodać identyfikatory MSA do DataFrame tracts. Jako kluczy złączenia użyjesz kolumn state i county, które występują w obu DataFrame. Na końcu skorzystasz z metody stripplot biblioteki seaborn, aby wyświetlić dziesięć najbardziej segregowanych obszarów metropolitalnych.
DataFrame tracts, z którego korzystałeś wcześniej, jest już wczytany. Dane o populacji według MSA są wczytane jako msa, a kilka pierwszych wierszy wyświetlono w konsoli. DataFrame msa_def zawiera informacje o tym, które powiaty wchodzą w skład poszczególnych MSA.
Biblioteki pandas i seaborn są wczytane pod standardowymi aliasami.
To ćwiczenie jest częścią kursu
Analiza danych spisowych USA w Pythonie
Instrukcje do ćwiczenia
- Użyj metody
nlargestna DataFramemsa, aby zwrócić 50 największych obszarów metropolitalnych według kolumny"population". - Zarówno
tracts, jak imsa_defmają kolumny"state"i"county". Użyj metodymergez parametremon, aby złączyć te DataFrame po tych kolumnach. - Użyj metody
merge, aby połączyćmsaimsa_Dwedług identyfikatora MSA.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()