採点されません。匿名です。 間違えることは学習の一部です。読むだけでもかまいません。

L09 ch04 — pandas で CSV

テクノロジ系 / L09 file-io — ファイル永続化

L09 ch04 — pandas で CSV

データ操作の業界標準ライブラリ

ゴール

  • pd.read_csv / df.to_csv で CSV 読み書き
  • DataFrame でフィルタ・集計
  • データ分析でなく業務処理にも便利

インストール

uv add pandas

読み込み

import pandas as pd

df = pd.read_csv("tasks.csv")
print(df.head())
#    id   title   done
# 0   1  買い物  False
# 1   2    掃除   True

→ 型推論で自動的に int / bool / str に変換

フィルタ

# done=True のみ
done_df = df[df["done"] == True]

# 複数条件
df[(df["done"] == False) & (df["id"] > 1)]

集計

df["done"].sum()           # True の数
df.groupby("done").count() # 完了/未完了の件数

df["title"].str.len().mean()  # title 平均文字数

書き込み

df.to_csv("output.csv", index=False, encoding="utf-8")

index=False で行番号 (0,1,2...) を出力しない。

  • pandas は依存が大きい (numpy 等)、軽量処理なら csv モジュールで十分
  • メモリ使用量大 → 巨大 CSV は chunksize でストリーミング
  • 型推論がうまくいかない場合 dtype 指定で明示

業務での用途

  • 月次レポート集計
  • データクレンジング
  • API データの Excel 出力 (df.to_excel)
  • DB データの加工 (pd.read_sql)

drill

drill/ — DataFrame で CSV フィルタ

csv モジュール vs pandas

観点csv (標準ライブラリ)pandas
依存なしnumpy + pandas (= 重い)
読み込み速度速い巨大データに最適化
メモリ行ストリーミング可能全件メモリ展開
フィルタ・集計自前df[df.col>0] / groupby
Excel 出力不可df.to_excel()
型推論なし (全 str)自動

軽量処理は csv / 集計が必要なら pandas

巨大 CSV のストリーミング

メモリに乗らない CSV は chunk で読む:

import pandas as pd

total = 0
for chunk in pd.read_csv("huge.csv", chunksize=10_000):
    total += chunk["amount"].sum()
print(total)

→ メモリ使用量は chunk サイズだけで済む。

dtype 明示

型推論が暴走するケース (= ZIP コード 012341234 になる) を防ぐ:

df = pd.read_csv("data.csv", dtype={"zip": str, "id": int})

業務での典型ワークフロー

# 1. 複数 CSV を結合
df_a = pd.read_csv("sales_2025.csv")
df_b = pd.read_csv("sales_2026.csv")
df = pd.concat([df_a, df_b], ignore_index=True)

# 2. クレンジング
df = df.dropna(subset=["amount"])           # 欠損行除去
df["amount"] = df["amount"].astype(int)

# 3. 集計
result = df.groupby("category")["amount"].sum()

# 4. Excel に出力 (取引先に渡す形式)
result.to_excel("report.xlsx", index=True)

次に学ぶ領域

領域続けて読む
シンプルな CSVch03-csv
データ可視化 (matplotlib / plotly)将来の chapter
データベース連携 (pd.read_sql)db/
力試ししたい方は クイズ形式の演習(任意) もあります。読むだけでも十分です。