始める無料で始める

州ごとの性別人口割合を求める

この演習では、2000年時点の人口に占める女性の割合を求めるクエリを書きます。州ごとにグループ化して計算します。

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

Pythonで学ぶデータベース入門

コースを見る

演習の手順

  • sqlalchemy から casecastFloat をインポートします。
  • state と 2000年の女性の割合を選択するステートメントを定義します。
    • func.sum() の中で、case() を使って pop2000 から女性(sex 列を使用)を選びます。sex'F' でない場合に備えて else_=0 を指定することを忘れないでください。
    • 割合を得るには、2000年の女性の人数を2000年の総人口で割ります。除数である census.columns.pop2000 は、100 を掛ける前に Float にキャストします。
  • クエリを state でグループ化します。
  • クエリを実行して、結果を results に保存します。
  • 各レコードについて statepercent_female を出力します。これはすでに用意されているので、回答を送信して結果を確認してください。

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

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

# import case, cast and Float from sqlalchemy
from sqlalchemy import ____, ____, ____

# Build a query to calculate the percentage of women in 2000: stmt
stmt = select([____,
    (func.sum(
        ____([
            (____ == 'F', ____)
        ], else_=0)) /
     cast(func.sum(____), ____) * 100).label('percent_female')
])

# Group By state
stmt = stmt.group_by(____)

# Execute the query and store the results: results
results = connection.execute(____).fetchall()

# Print the percentage
for result in results:
    print(result.state, result.percent_female)
コードを編集して実行