始める無料で始める

トラクトと大都市圏の結合

merge メソッドの使い方に集中できるように、不平等指数(Index of Dissimilarity)を計算する関数は用意してあります。(次の演習でこの関数をご自身で作成します!)

この関数を適用するには、MSA 識別子を tracts DataFrame に追加する必要があります。結合キーとして、両方の DataFrame にある statecounty を使います。最後に、seabornstripplot メソッドを使って、最も分離が大きい上位 10 の大都市圏を可視化します。

これまでに使用した tracts DataFrame が読み込まれています。MSA ごとの人口データは msa として読み込まれており、先頭数行がコンソールに表示されています。最後に、各 MSA を構成する郡の情報が入った msa_def も読み込まれています。

pandasseaborn は通常のエイリアスで読み込まれています。

この演習はコースの一部です

Pythonで学ぶ米国センサスデータ分析

コースを見る

演習の手順

  • msa DataFrame に対して nlargest メソッドを使い、"population" に基づく上位 50 の大都市圏を取得します。
  • tractsmsa_def の両方には "state""county" 列があります。これらの列で結合するように、on パラメータを指定して merge メソッドを使います。
  • msamsa_D を、MSA 識別子で merge メソッドにより結合します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# 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()
コードを編集して実行