始める無料で始める

ループで D を計算する

Georgia の乖離指数(Index of Dissimilarity)0.544 は高いのでしょうか、低いのでしょうか。Chicago のある Illinois(FIPS = 17)と比べてみましょう。

この演習では、ループを使ってすべての州について \(D\) を計算し、Georgia と Illinois を比較します。

乖離指数の式は次のとおりです。

$$D = \frac{1}{2}\sum{\left\lvert \frac{a}{A} - \frac{b}{B} \right\rvert}$$

pandas は通常のエイリアスでインポート済みで、人口列 "white""black" を持つ tracts DataFrame が読み込まれています。変数 wb は、それぞれ列名 "white""black" に設定されています。

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

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

コースを見る

演習の手順

  • "state" 列に対して unique() メソッドを使い、州の FIPS コードのリストを作成します。
  • for ループを使って、states の各要素(各 FIPS コード)を state という変数に取り出します。
  • state の各値で tracts DataFrame をフィルタリングし、tmp に代入します。
  • tmp に式を適用して各州の \(D\) を計算し、結果を辞書 state_D に保存します。

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

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

# Get list of state FIPS Codes
states = list(tracts["state"].____)

state_D = {}  # Initialize dictionary as collector
for state in ____:
    # Filter by state
    tmp = ____
    
    # Add Index of Dissimilarity to Dictionary
    state_D[state] = 0.5 * sum(____)

# Print D for Georgia (FIPS = 13) and Illinois (FIPS = 17)    
print("Georgia D =", round(state_D["13"], 3))
print("Illinois D =", round(state_D["17"], 3))
コードを編集して実行