開始使用免費開始

合併普查小區與都會區

為了專注在 merge 方法的運作方式,本題已替你提供一個用來計算「差異指數(Index of Dissimilarity)」的函式。(你會在下一題自己實作這個函式!)

要套用這個函式,你需要把 MSA 識別碼加入 tracts DataFrame。你會使用兩個 DataFrame 皆有的 statecounty 作為連接鍵。最後,會使用 seabornstripplot 方法繪製出區隔最嚴重的前 10 個都會區。

你先前使用過的 tracts DataFrame 已載入。依 MSA 匯總的人口資料已載入為 msa,其前幾列已在主控台顯示。最後,msa_def 已載入,內含各 MSA 所包含的縣。

pandasseaborn 已以慣用別名載入。

本練習屬於課程

使用 Python 分析美國 Census 資料

檢視課程

練習說明

  • msa DataFrame 使用 nlargest 方法,依 "population" 取出規模最大的 50 個都會區。
  • tractsmsa_def 都有 "state""county" 欄位。使用 merge 方法並搭配 on 參數,依這些欄位進行連接。
  • 使用 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()
編輯並執行程式碼