州間フロー
動画では州から州への移動フローのヒートマップを見ましたが、情報が多すぎて見づらいものでした。この演習では、中西部(Midwest)内のフローのみに絞って確認します。
データフレーム state_to_state が読み込まれており、先頭の数行がコンソールに表示されています。動画で見たとおり、行ラベルは「移動先の州」を、列名は「移動元の州」を表します。
中西部の州名を集めたリスト midwest_states が定義されています。(どの州が含まれているか確認したい場合は、コンソールに出力してください。)このデータフレームでは列名とインデックスに州名が使われているため、このヒートマップに使いたい列と行を抽出する際に midwest_states を利用します。
pandas と seaborn は通常のエイリアスでインポート済みです。
この演習はコースの一部です
Pythonで学ぶ米国センサスデータ分析
演習の手順
- データフレームをサブセット化し、州名リストに一致する列のみ、かつインデックスが州名リストに含まれる行のみを返してください。
- サブセット化により列と行の順序が変わっている可能性があります。
midwest.indexがmidwest.columnsと等しいか確認してください。 - 行インデックス(
axis = 0)と列名(axis = 1)でデータフレームをソートします。両方でinplace = Trueを使用してください。 midwestのヒートマップを作成します。cmap="YlGnBu"を指定して、黄緑から青のカラーマップを適用してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Retain only rows and columns of Midwest states
midwest = state_to_state[____][state_to_state.index.isin(____)]
# Are rows and columns still in the same order?
print(____)
# Sort the rows (by index) and columns (by name)
midwest.sort_index(axis = ____, ____)
midwest.sort_index(axis = ____, ____)
# Create a heatmap of migration flows
____
plt.xticks(rotation=90)
plt.yticks(rotation=0)
plt.show()