解説
実際のデータは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 で読み込み、クラスごとにスコアをまとめて、グループ別平均・人数と全体平均を集計しよう。
コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。
自分のPCでも続けてみませんか
Windows版 InsightPy は Python を同梱しているので、環境構築なしで同じコードを書いて実行できます。 書いたコードを保存しておけるほか、ステップ実行で変数の変化を1行ずつ確かめられます。 個人の学習や私的な目的でのご利用は、31日目以降も無料です(スクリプトの保存は10本まで)。 このブラウザ版の学習センターも、引き続き無料でお使いいただけます。