Python | 標準ライブラリ(csv + pathlib)だけ を使って、CSVファイルを「フィルタリング」や「並べ替え」する実践例

Python Python
スポンサーリンク

ここでは 標準ライブラリ(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を結合」といった処理を標準ライブラリだけでやってみると、さらに実践的になります。

Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました