州ごとの性別人口割合を求める
この演習では、2000年時点の人口に占める女性の割合を求めるクエリを書きます。州ごとにグループ化して計算します。
この演習はコースの一部です
Pythonで学ぶデータベース入門
演習の手順
sqlalchemyからcase、cast、Floatをインポートします。stateと 2000年の女性の割合を選択するステートメントを定義します。func.sum()の中で、case()を使ってpop2000から女性(sex列を使用)を選びます。sexが'F'でない場合に備えてelse_=0を指定することを忘れないでください。- 割合を得るには、2000年の女性の人数を2000年の総人口で割ります。除数である
census.columns.pop2000は、100 を掛ける前にFloatにキャストします。
- クエリを
stateでグループ化します。 - クエリを実行して、結果を
resultsに保存します。 - 各レコードについて
stateとpercent_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)