Associer les tracts et les aires métropolitaines
Pour vous concentrer sur le fonctionnement de la méthode merge, une fonction qui calcule l’Index of Dissimilarity vous est fournie. (Vous la coderez vous-même dans le prochain exercice !)
Pour appliquer cette fonction, vous devez ajouter les identifiants MSA au DataFrame tracts. Vous utiliserez state et county, présents dans les deux DataFrames, comme clés de jointure. À la fin, vous utiliserez la méthode stripplot de seaborn pour afficher les dix métropoles les plus ségréguées.
Le DataFrame tracts que vous avez déjà utilisé est chargé. Les données de population par MSA sont chargées sous le nom msa, et les premières lignes s’affichent dans la console. Enfin, msa_def est chargé avec les comtés qui composent chaque MSA.
pandas et seaborn ont été importés avec les alias habituels.
Cet exercice fait partie du cours
Analyzing US Census Data in Python
Instructions
- Utilisez la méthode
nlargestsur le DataFramemsapour obtenir les 50 plus grandes métropoles selon"population". tractsetmsa_defpossèdent tous deux les colonnes"state"et"county". Utilisez la méthodemergeavec le paramètreonpour joindre sur ces colonnes.- Utilisez la méthode
mergepour joindremsaetmsa_Dsur l’identifiant MSA.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()