グループごとの件数を数える
これまでの演習では、まずテーブルからデータを取得し、次に pandas でデータフレームを集計してグラフを作成しました。SQL クエリで COUNT と GROUP BY を使えば、その集計値をデータベースから直接取り出せます。
hpd311calls テーブルには、暖房や配管などの課題ごとに通報記録を分類する complaint_type 列があります。課題別の通報件数を可視化するために、苦情タイプごとにレコードを COUNT する SQL クエリを書きます。
pandas は pd としてインポート済みで、data.db 用のデータベースエンジンは engine として作成済みです。
この演習はコースの一部です
pandasで効率よくデータを取り込む
演習の手順
hpd311callsからcomplaint_type列と、全レコードの件数をcomplaint_typeごとに集計した結果を取得する SQL クエリを作成します。- 課題別の通報件数を
read_sql()でデータフレームcalls_by_issueに作成します。 - 末尾のコードを実行して、各住宅問題に対する通報件数をグラフ化します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create query to get call counts by complaint_type
query = """
____ ____,
____(*)
FROM hpd311calls
____ ____;
"""
# Create dataframe of call counts by issue
calls_by_issue = pd.read_sql(____, ____)
# Graph the number of calls for each housing issue
calls_by_issue.plot.barh(x="complaint_type")
plt.show()