Об'єднання трактів і метрополійних областей
Щоб зосередитися на тому, як працює метод merge, для вас підготовлено функцію, яка обчислює індекс відмінності (Index of Dissimilarity). (У наступній вправі ви створите цю функцію самостійно!)
Щоб застосувати цю функцію, потрібно додати ідентифікатори 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()