API から可視化へ:Group Quarters(施設入所者)
この演習では、少年犯罪者がどこに収容されているかを調べます。本演習では、大学寮、矯正施設、介護施設、軍基地などを含む「group quarters(施設入所者)」という概念を紹介します。
各州ごとの、未成年の男性が「成人」矯正施設に収容されている割合を可視化します。リクエストする変数は次のとおりです。
- PCT021005 - 男性:18歳未満:施設入所人口:成人向け矯正施設
- PCT021015 - 男性:18歳未満:施設入所人口:少年施設:少年向け矯正施設
requests はインポート済みです。API リクエスト用の base_url は定義されています。
pandas と seaborn は通常のエイリアスでインポート済みです。
この演習はコースの一部です
Pythonで学ぶ米国センサスデータ分析
演習の手順
- 必要な2つの変数で
get_varsのリストを完成させます astypeを使って、in_adultとin_juvenileの列を整数型に変換します- 成人矯正施設にいる未成年の割合を計算します:分子は未成年が
in_adult矯正施設にいる人数の100倍、分母は未成年がin_adultとin_juvenile矯正施設にいる人数の合計です statesをpct_in_adultで降順に並べ替え、inplace = Trueを指定します
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Specify variables and execute API request
get_vars = ["NAME", ____]
predicates["get"] = ",".join(get_vars)
r = requests.get(base_url, params=predicates)
# Construct DataFrame
col_names = ["name", "in_adult", "in_juvenile", "state"]
states = pd.DataFrame(columns=col_names, data=r.json()[1:])
states[["in_adult", "in_juvenile"]] = states[["in_adult", "in_juvenile"]].____
# Calculate percentage of incarcerated male minors in adult facilities
states["pct_in_adult"] = ____
states.sort_values(by = ____, ascending = ____, inplace = ____)
sns.stripplot(x = "pct_in_adult", y = "name", data = states)
plt.show()