1. 学ぶ
  2. /
  3. プロジェクト
  4. /
  5. Pythonで学ぶ米国センサスデータ分析

Connected

演習

Pandasでグループ化してDを計算する

DataFrameを部分集合ごとに計算するのはとても一般的なので、pandasにはループの代わりとなるgroupbyメソッドがあります。サンプルコードでは、まずgroupbyを使って州ごと、つまり"state"列の値が同じ行ごとにトラクトをグループ化しています。続いて、列に対してグループ単位でsum()メソッドを適用します。

この演習ではさらに、もう一つ便利なpandasメソッドであるmergeを使って、グループ化して合計した値を各トラクトに結合しています。今は文法を気にしなくて大丈夫です。mergeは後のレッスンで解説します。

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

指示

100 XP
  • groupbyを使ってsums_by_stateを作成し、結果を表示します。
  • mergeを使ってtractsを作成し、結果を表示します。
  • \(\left\lvert\frac{a_i}{A} - \frac{b_i}{B}\right\rvert\) を計算し、新しい列Dに保存します。(リマインダー:白人と黒人の人口の合計($A$と$B$)はすでに計算済みで、"_sum"というサフィックスの付いた列としてtracts DataFrameに入っています。)
  • groupbyメソッドで州ごとに列Dを合計し、0.5を掛けます。