
プログラミング初心者やデータ分析に興味を持ち始めた方にとって、「CSVファイルの操作」は避けて通れないスキルです。特にPythonでは、標準ライブラリや外部ライブラリを使って効率よくCSVファイルを読み書きできます。
本記事では、PythonでのCSVファイル操作の基礎から応用までを徹底解説します。さらに、人気のデータ分析ライブラリ「Pandas」を用いた強力なデータ操作手法についてもわかりやすく紹介します。これを読めば、実務でも使えるCSV操作がバッチリ身につきますので、最後までぜひご覧ください。
目次
CSVファイルとは

CSV(Comma-Separated Values)ファイルは、データをカンマで区切って保存するテキストファイルです。行ごとに1レコード、カンマごとに1フィールドとして情報が整理されており、非常にシンプルで扱いやすい形式です。
特徴:
- テキスト形式なので軽量
- ExcelやGoogleスプレッドシートでも開ける
- プログラムでの読み書きが容易
例
CSVファイルの中身
名前,年齢,職業
田中,30,エンジニア
佐藤,25,デザイナー
鈴木,28,マーケター
このように、カンマで区切られたシンプルな形式がCSVの特徴です。
主なメリット
- ExcelやGoogleスプレッドシートで簡単に開ける
- テキストエディタでも中身が確認できる
- 軽量かつ互換性が高い
業務では顧客データ、売上データ、商品リストなど、多くの情報をCSV形式でやり取りする機会があります。
Python標準ライブラリでCSVを操作する

Pythonには標準でcsvモジュールが用意されており、インストール不要でCSVファイルの読み書きが可能です。
CSVの読み込み
import csv
with open(‘sample.csv’, newline=”, encoding=’utf-8′) as f:
reader = csv.reader(f)
for row in reader:
print(row)
このコードで、1行ずつリスト形式でデータを取得できます。
CSVの書き込み
import csv
data = [
[“Name”, “Age”, “Country”],
[“Alice”, 25, “USA”],
[“Bob”, 30, “UK”]
]
with open(‘output.csv’, ‘w’, newline=”, encoding=’utf-8′) as f:
writer = csv.writer(f)
writer.writerows(data)
ワンポイント
- newline=” を使うことで、Windows環境で不要な空行が出るのを防ぎます。
- encoding=’utf-8′ は日本語を正しく扱うために重要です。
DictReader/DictWriterを使う
import csv
with open(‘sample.csv’, newline=”, encoding=’utf-8′) as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row[‘名前’], row[‘年齢’])
辞書形式で扱えるため、可読性・メンテナンス性が高くなります。
PandasでCSVを操作する

Pandasはデータ分析のために広く使われるPythonライブラリです。表形式のデータ(DataFrame)としてCSVファイルを扱うことができ、Excelライクな感覚で操作できます。
Pandasのインストール
pip install pandas
CSVを読み込む
import pandas as pd
df = pd.read_csv(‘sample.csv’)
print(df)
CSVを書き出す
df.to_csv(‘output.csv’, index=False, encoding=’utf-8′)
index=Falseを指定しないと、自動で行番号(インデックス)がCSVに追加されてしまうので注意しましょう。
データの抽出と加工
print(df[‘名前’]) # 特定の列を抽出
print(df.iloc[0]) # 1行目を抽出
df[‘年齢’] += 1 # 年齢を1歳加算
df[‘職業’] = df[‘職業’].str.upper() # 職業を大文字に変換
filtered = df[df[‘年齢’] > 30] # 30歳以上のデータ抽出
print(filtered)
具体的な活用例
- 顧客の誕生日から年齢を自動計算
- 商品データから在庫ゼロの商品を抽出
- 売上データから店舗別・月別の集計を作成
CSV操作でよくあるエラーと対処法

UnicodeDecodeError(文字コードエラー)
原因:CSVファイルの文字コードがUTF-8以外(例:Shift-JIS)
対処法:encodingを指定する
df = pd.read_csv(‘sample.csv’, encoding=’shift_jis’)
FileNotFoundError(ファイルが見つからない)
対処法:ファイルパスを確認する。
import os
print(os.getcwd()) # 現在の作業ディレクトリを表示
index列が自動で追加される
対処法:書き出し時にindex=Falseを明示
df.to_csv(‘output.csv’, index=False)
ファイルのエンコーディングやパス指定は、初心者がつまずきやすいポイントです。常にtry-except構文を使うことで、エラー時の対応が柔軟になります。
実務で使える応用テクニック

複数CSVファイルの一括読み込み・結合
import glob
import pandas as pd
files = glob.glob(‘data/*.csv’)
df_list = [pd.read_csv(file) for file in files]
combined_df = pd.concat(df_list, ignore_index=True)
このコードは、特定フォルダ内のCSVファイルをすべて結合し、一つの大きなDataFrameとして扱います。年間の売上ファイル(月別)を統合したい時などに便利です。
CSVデータをグラフ化(matplotlibと連携)
import matplotlib.pyplot as plt
df.plot(x=’名前’, y=’年齢’, kind=’bar’)
plt.title(‘年齢別棒グラフ’)
plt.xlabel(‘名前’)
plt.ylabel(‘年齢’)
plt.grid(True)
plt.show()
売上推移の折れ線グラフや、商品カテゴリごとの円グラフなども簡単に作成できます。
まとめ
PythonでCSVファイルを操作するスキルは、データ分析や業務自動化を目指す上で非常に重要です。標準ライブラリでも基本的な操作は可能ですが、Pandasを使えばより効率的で高機能な処理が可能になります。
この記事のまとめ
- CSVファイルはあらゆる場面で使われる基本的なデータ形式
- Pythonのcsvモジュールで読み書きは簡単にできる
- Pandasを使えば、データ加工・集計・可視化が圧倒的に楽になる
- 実務でも使える一括処理や可視化テクニックを活用しよう
今後、CSVだけでなくExcelやJSON、SQLなど他形式のデータも扱う機会が増えてきます。まずはCSVの基本をしっかり押さえて、次のステップに進みましょう。もし、より複雑なデータ処理や業務の自動化でお困りでしたら、お気軽に3inkへご相談ください。
