#62

CSVデータの読み取りと集計

複数行文字列のCSVをcsvモジュールで解析し、グループごとに集計します。

解説

実際のデータはCSV形式で配られることがよくあります。ここでは複数行の文字列をCSVデータと見立て、csv.DictReaderで1行ずつ辞書として読み込みます(各列に名前でアクセスできて便利)。 さらに collections.defaultdict を使って「クラスごと」にスコアをまとめ、グループ別の平均と人数、全体平均を集計します。 データの読み込み→グループ化→集計、というデータ分析の基本の流れを体験しましょう。

書き方

import csv / from io import StringIO / from collections import defaultdict — CSV解析・文字列のファイル化・初期値つき辞書を読み込む。
・StringIO(文字列) — 複数行文字列をファイルのように扱う。
・csv.DictReader(...) — 各行を列名キーの辞書として読み込む。row["列名"] でアクセス。
・defaultdict(list) — 未登場キーに自動で空リストを用意し append() でまとめる。
・sorted(辞書) でキーを並べ、sum(vals)/len(vals) で平均。内包表記で全件を平坦化。

書いて動かす

この回の課題

複数行のCSV文字列を DictReader で読み込み、クラスごとにスコアをまとめて、グループ別平均・人数と全体平均を集計しよう。

コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。

もっと本格的に使うなら

Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。