开始使用免费开始使用

合并普查小区与大都市区

为便于专注于 merge 方法的用法,我们已为您提供了一个计算差异指数(Index of Dissimilarity)的函数。(在下一个练习中,您将亲自编写这个函数!)

要应用该函数,您需要把 MSA 标识符添加到 tracts DataFrame 中。您将使用同时存在于两个 DataFrame 中的 statecounty 作为连接键。最后,您将使用 seabornstripplot 方法展示分隔程度最高的 10 个都会区。

您之前使用过的 tracts DataFrame 已加载。按 MSA 汇总的人口数据已加载为 msa,其前几行已在控制台显示。最后,msa_def 已加载,其中包含构成每个 MSA 的各县。

pandasseaborn 已按惯例的别名加载。

本练习是课程的一部分

使用 Python 分析美国人口普查数据

查看课程

练习说明

  • msa DataFrame 上使用 nlargest 方法,按 "population" 返回规模最大的 50 个都会区。
  • tractsmsa_def 都有 "state""county" 列。使用带有 on 参数的 merge 方法在这两列上连接。
  • 使用 merge 方法在 MSA 标识符上连接 msamsa_D

交互式实操练习

通过完成这段示例代码来试试这个练习。

# 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()
编辑并运行代码