ここでは 標準ライブラリ(csv + pathlib)だけ を使って、CSVファイルを「フィルタリング」や「並べ替え」する実践例を紹介します。
応用例1: 条件でフィルタリング
例えば people.csv が以下のような内容だとします:
名前,年齢,職業
田中,28,エンジニア
佐藤,34,デザイナー
鈴木,22,学生
高橋,45,マネージャー
年齢が30歳以上の人だけを抽出
import csv
from pathlib import Path
csv_path = Path.home() / "Documents" / "people.csv"
with csv_path.open("r", encoding="utf-8") as f:
reader = csv.DictReader(f)
filtered = [row for row in reader if int(row["年齢"]) >= 30]
for row in filtered:
print(row["名前"], row["年齢"], row["職業"])
Python👉 出力例:
佐藤 34 デザイナー
高橋 45 マネージャー
応用例2: 並べ替え(ソート)
年齢の昇順で並べ替え
import csv
from pathlib import Path
csv_path = Path.home() / "Documents" / "people.csv"
with csv_path.open("r", encoding="utf-8") as f:
reader = csv.DictReader(f)
rows = list(reader)
# 年齢をキーにしてソート
sorted_rows = sorted(rows, key=lambda r: int(r["年齢"]))
for row in sorted_rows:
print(row["名前"], row["年齢"], row["職業"])
Python👉 出力例:
鈴木 22 学生
田中 28 エンジニア
佐藤 34 デザイナー
高橋 45 マネージャー
応用例3: フィルタ+ソートの組み合わせ
「30歳以上」かつ「年齢の降順」で並べ替え
import csv
from pathlib import Path
csv_path = Path.home() / "Documents" / "people.csv"
with csv_path.open("r", encoding="utf-8") as f:
reader = csv.DictReader(f)
rows = [row for row in reader if int(row["年齢"]) >= 30]
# 年齢の降順でソート
rows = sorted(rows, key=lambda r: int(r["年齢"]), reverse=True)
for row in rows:
print(row["名前"], row["年齢"], row["職業"])
Python👉 出力例:
高橋 45 マネージャー
佐藤 34 デザイナー
まとめ
- フィルタリング →
if 条件で抽出 - 並べ替え →
sorted(..., key=...)を活用 - DictReader を使うとヘッダー名でアクセスできて便利
次のステップとしては、「集計(例: 職業ごとの人数カウント)」や「複数CSVを結合」といった処理を標準ライブラリだけでやってみると、さらに実践的になります。


