始める無料で始める

グループごとの件数を数える

これまでの演習では、まずテーブルからデータを取得し、次に pandas でデータフレームを集計してグラフを作成しました。SQL クエリで COUNTGROUP BY を使えば、その集計値をデータベースから直接取り出せます。

hpd311calls テーブルには、暖房や配管などの課題ごとに通報記録を分類する complaint_type 列があります。課題別の通報件数を可視化するために、苦情タイプごとにレコードを COUNT する SQL クエリを書きます。

pandaspd としてインポート済みで、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()
コードを編集して実行