カテゴリ: Python 更新日: 2026/03/07

PythonでCSVファイルを扱う方法!csvモジュールの基本と活用例

PythonでCSVファイルを扱う方法!csvモジュールの基本と活用例
PythonでCSVファイルを扱う方法!csvモジュールの基本と活用例

先生と生徒の会話形式で理解しよう

生徒

「Pythonで表みたいなデータを扱うとき、どうすればいいですか?」

先生

「そういう場合はCSVファイルを使うのがおすすめです。そしてPythonにはcsvモジュールが用意されているので簡単に扱えますよ。」

生徒

「CSVって何ですか?」

先生

「CSVは『Comma Separated Values』の略で、カンマで区切られたデータです。表計算ソフトでも開けます。今日はその読み書き方法を学びましょう。」

1. CSVファイルとは?初心者にも分かりやすく解説

1. CSVファイルとは?初心者にも分かりやすく解説
1. CSVファイルとは?初心者にも分かりやすく解説

CSV(シーエスブイ)ファイルとは、「Comma Separated Values」の略で、日本語では「カンマで区切られた値」という意味です。その名の通り、データをカンマ(,)で区切って保存する、非常にシンプルで汎用性の高いファイル形式です。

プログラミングの世界だけでなく、ExcelやGoogleスプレッドシートなどの表計算ソフト、データベースのバックアップ、顧客管理システム間のデータ移行など、あらゆる場面で「標準的なデータ形式」として利用されています。

ここがポイント!
  • 互換性が高い:WindowsやMac、スマホなど環境を問わず開けます。
  • 軽量:余計な装飾情報がないため、ファイルサイズが小さく処理が速いです。
  • 中身はテキスト:メモ帳などのテキストエディタで中身を直接確認・編集できます。

例えば、名前、年齢、居住地という3つの情報を持つデータがある場合、CSV形式では以下のように記述されます。


名前,年齢,国
太郎,25,日本
花子,30,アメリカ

このように、1行が「1人分のデータ(レコード)」を表し、各項目をカンマで区切ることで、コンピュータが「どこからどこまでが名前で、どこが年齢か」を正確に判別できるようになっています。

2. csvモジュールの基本

2. csvモジュールの基本
2. csvモジュールの基本

Pythonのcsvモジュールを使うと、CSVファイルの読み書きが簡単にできます。まずは読み込みの基本を見てみましょう。



import csv



with open("sample.csv", "r", encoding="utf-8") as f:

    reader = csv.reader(f)

    for row in reader:

        print(row)



['名前', '年齢', '国']

['太郎', '25', '日本']

['花子', '30', 'アメリカ']

readerオブジェクトは、各行をリストとして返します。

3. CSVファイルへの書き込み

3. CSVファイルへの書き込み
3. CSVファイルへの書き込み

次にCSVファイルへ書き込みます。csv.writer()を使えば簡単に行を追加できます。


import csv

data = [
    ["名前", "年齢", "国"],
    ["太郎", 25, "日本"],
    ["花子", 30, "アメリカ"]
]

with open("output.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerows(data)

newline=""を指定すると、余分な空行が入るのを防げます。

4. 辞書形式での読み書き

4. 辞書形式での読み書き
4. 辞書形式での読み書き

DictReaderDictWriterを使うと、CSVを辞書形式で扱えます。列名をキーとしてアクセスできるため便利です。


import csv

with open("sample.csv", "r", encoding="utf-8") as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(row["名前"], row["年齢"])

太郎 25
花子 30

書き込みもDictWriterを使えば列名を指定して行えます。

5. 実用的な活用例

5. 実用的な活用例
5. 実用的な活用例

CSVファイルはデータ分析や機械学習の前処理にも使われます。例えば、条件に合う行だけ抽出して別ファイルに保存することができます。


import csv

with open("sample.csv", "r", encoding="utf-8") as f, \
     open("filtered.csv", "w", newline="", encoding="utf-8") as out:
    reader = csv.DictReader(f)
    writer = csv.DictWriter(out, fieldnames=reader.fieldnames)
    writer.writeheader()
    for row in reader:
        if int(row["年齢"]) >= 30:
            writer.writerow(row)

この例では、年齢が30以上の人だけを新しいCSVに書き出しています。

6. プログラミング未経験者へのアドバイス

6. プログラミング未経験者へのアドバイス
6. プログラミング未経験者へのアドバイス

CSVはとても汎用的なデータ形式です。まずは自分で小さなCSVファイルを作り、読み書きのコードを試すのがおすすめです。csv.reader()csv.writer()DictReaderDictWriterを覚えると、ほとんどのCSV操作ができるようになります。

ファイルを開くときはwith open()を使って閉じ忘れを防ぎましょう。また、文字化け防止のためにencoding="utf-8"をつける習慣をつけると安心です。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:

関連記事なし

カテゴリの一覧へ
新着記事
New1
Python
Pythonのカスタム例外を作成する方法を完全解説!初心者でもわかる独自のExceptionクラス入門
New2
PHP
PHP の型変換を完全ガイド!初心者でもわかる明示的変換・自動変換
New3
PHP
PHPの真偽値と条件判定をやさしく解説!初心者でもわかるempty・isset・is_nullの使い方
New4
PHP
PHP の file_get_contents() を使ってファイルを読み込む方法!初心者でもできる簡単なファイル操作
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonのfinally文を徹底解説!例外発生時でも実行される処理の書き方と使い方
No.2
Java&Spring記事人気No2
Python
Pythonのクラスメソッドと静的メソッドの違いとは?初心者でも迷わない使い分けガイド
No.3
Java&Spring記事人気No3
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Python
Pythonの書き方を基本から解説!はじめてのPythonプログラム
No.5
Java&Spring記事人気No5
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.6
Java&Spring記事人気No6
PHP
初心者向けPHP の MySQL のデータを更新する方法(UPDATE 文)完全ガイド
No.7
Java&Spring記事人気No7
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.8
Java&Spring記事人気No8
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方