Объединение трактов и метрополитенских статистических ареалов
Чтобы сосредоточиться на работе метода merge, функция для вычисления индекса диссимиляции уже подготовлена для вас. (В следующем упражнении вы создадите её самостоятельно!)
Для применения этой функции необходимо добавить идентификаторы MSA в набор данных tracts. В качестве ключей объединения вы будете использовать столбцы state и county, которые присутствуют в обоих наборах данных. В конце вы воспользуетесь методом stripplot из библиотеки seaborn, чтобы отобразить десять наиболее сегрегированных мегаполисов.
Набор данных tracts, с которым вы работали ранее, уже загружен. Демографические данные по MSA загружены как msa, первые несколько строк отображаются в консоли. Наконец, набор данных msa_def содержит округа, входящие в состав каждого MSA.
Библиотеки pandas и seaborn загружены со стандартными псевдонимами.
Это упражнение является частью курса
Анализ данных переписи населения США в Python
Инструкции к упражнению
- Используйте метод
nlargestдля набора данныхmsa, чтобы выбрать 50 крупнейших мегаполисов по столбцу"population". - Оба набора данных —
tractsиmsa_def— содержат столбцы"state"и"county". Используйте методmergeс параметромon, чтобы выполнить объединение по этим столбцам. - Используйте метод
merge, чтобы объединитьmsaиmsa_Dпо идентификатору MSA.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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()