PythonでCSVを読み込む方法|引数設定などコード付きで解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年7月)

✔このような方へ向けて書かれた記事となります

「PythonでCSVファイルの読み込みがしたいけれど、どうすればいいのだろう?」

「PythonでCSVファイルを読み込む方法を上達させたい」

「Pythonを使ったCSV読み込みの具体例を知りたい」

✔当記事を通じてお伝えすること

  • Pythonを使ったCSVファイルの読み込みの基本
  • CSVファイル読み込みの効率的な方法
  • PythonでのCSVファイル読み込みの実例

当記事では、Pythonを用いたCSVファイル読み込みの基本から、実践的な使い方まで、具体例を交えて詳しく解説しています。

ぜひ最後までお読みいただき、CSVファイル読み込みのスキルを磨きましょう。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

PythonでCSVファイルを読み込む準備

次に、「PythonでCSVファイルを読み込む準備」について説明します。

「CSVファイルを読み込む準備」を整えることで、スムーズにCSV操作を行えるようになります。

  • PythonとCSVファイルについて
  • Pythonのインストール
  • サンプルCSVファイルの作成

PythonとCSVファイルについて

Pythonは、その豊富なライブラリとシンプルな構文で、データ解析の分野で非常に人気のあるプログラミング言語。

一方、CSV(Comma Separated Values)ファイルはそのシンプルさと普遍性から、多くのプログラムでデータの保存や交換のために用いられるもの。

PythonとCSVを組み合わせることで、データの読み込み、書き出し、解析などを効率的におこなえます。

Pythonのインストール

Pythonの公式ウェブサイトから、最新版のPythonをダウンロードして、ご自身のマシンにインストールしてください。

また、Pythonには様々なライブラリが存在しますが、このチュートリアルではPythonの標準ライブラリであるcsvモジュールを使用しますので、追加のインストールは必要ありません。

サンプルCSVファイルの作成

PythonでCSVファイルを読み込むための練習として、以下のような内容のサンプルCSVファイルを作成しましょう。

Name,Age,Occupation
Alice,20,Student
Bob,30,Engineer
Charlie,40,Doctor

このCSVファイルには、”Name”、”Age”、”Occupation”の3つの列があり、それぞれの行には、名前、年齢、職業が記載されています。

このデータをPythonで読み込み、解析する方法を学んでいきましょう。

csvモジュールを使ったCSVファイルの読み込み

こちらでは、csvモジュールを使ったCSVファイルの読み込み方法について見ていきましょう。

csvモジュールを使うと、Pythonで手軽にCSVファイルの読み書きをおこなえます。

  • csv.readerの基本的な使い方
  • デリミタ(区切り文字)の指定方法
  • 引用符の扱いと要素内の改行の対処法
  • ヘッダーを含むCSVファイルの読み込み
  • csv.DictReaderを使った辞書形式の読み込み

csv.readerの基本的な使い方

Pythonのcsvモジュールには、csvファイルを読み込むためのcsv.readerという関数が用意されています。

この関数を使用して、CSVファイルを読み込む方法を見てみましょう。

  • 行・列・要素の取得
  • 文字列を数値に変換

行・列・要素の取得

まず、csv.readerを使用してCSVファイルを読み込む基本的なコードは以下のとおりです。

import csv

with open('sample.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

このコードを実行すると、CSVファイルの各行がリストとして出力されます。

リストの各要素は、それぞれCSVファイルの列に対応。

行や列、要素を指定して取得するには、リストのインデックスを指定してください。

# 特定の行を取得する場合
target_row_index = 2  # 取得したい行のインデックス(0から始まる)
with open('sample.csv', 'r') as f:
    reader = csv.reader(f)
    for i, row in enumerate(reader):
        if i == target_row_index:
            print(row)

# 特定の列を取得する場合
target_column_index = 1  # 取得したい列のインデックス(0から始まる)
with open('sample.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        if len(row) > target_column_index:
            print(row[target_column_index])

# 特定の要素を取得する場合
target_row_index = 2  # 取得したい行のインデックス(0から始まる)
target_column_index = 1  # 取得したい列のインデックス(0から始まる)
with open('sample.csv', 'r') as f:
    reader = csv.reader(f)
    for i, row in enumerate(reader):
        if i == target_row_index and len(row) > target_column_index:
            print(row[target_column_index])

with句の使い方がわからない方は以下の記事を参考にしてください。

【簡単】Pythonのwith文を完全マスター|実コード付きで解説
Pythonでwith文を使いこなしたいですか?当記事では、'with'の使用法を具体的なコードと共に詳しく解説します。コードがあるので、手を動かせながら学べます。特にPython初心者の方にはぜひ読んでいただきたい内容です。

文字列を数値に変換

CSVファイルを読み込むと、全要素は文字列となります。

数値として扱いたい場合は、手動で型変換が必要です。

int(row[1])

例えばint関数を用いるなど、文字列を特定の型に変換しましょう。

【コード付き】Pythonのデータ型を確認する方法を丁寧に解説
「Python 型 確認」について学びたいですか?この記事では、Pythonでのデータ型の確認方法や実践的な例を詳細に解説しています。初心者にもわかりやすい一覧表が揃っており、内容は視覚的にも理解しやすいため、初めての方でも安心してご覧いただけます。さらに、この記事を読むことで他のPythonプログラムでも使える便利な型確認テクニックを学ぶことができ、より効率的なコーディングが可能になります。

デリミタ(区切り文字)の指定方法

CSVを読み取る際には、csv.readerの引数delimiterに区切り文字を指定しなければならない場面があります。

なぜならデフォルトでは、csv.readerはコンマを区切り文字(デリミタ)として扱うものの、タブやスペース、セミコロンなどを区切り文字として使用するCSVファイルもあるからです。

以下の例では、引数を指定して、タブ文字('\t')が区切り文字となっています。

import csv

with open('sample.tsv', 'r') as f:
    reader = csv.reader(f, delimiter='\t')
    for row in reader:
        print(row)

引用符の扱いと要素内の改行の対処法

CSVファイル内の要素が引用符(クォート)で囲まれている場合、その要素内に改行が含まれていても正しく読み込めます。

引用符は通常、ダブルクォート(")が使われますが、この文字を変更することも可能です。

その場合、csv.readerの引数quotecharに引用符を指定します。

import csv

with open('sample.csv', 'r') as f:
    reader = csv.reader(f, quotechar="'")
    for row in reader:
        print(row)

このコードでは、シングルクォート(')が引用符として扱われます。

ヘッダーを含むCSVファイルの読み込み

多くのCSVファイルは最初の行にヘッダー(列名)が含まれています。

ヘッダー行を読み飛ばすには、next関数を使って読み込む前に一行進めてください。

import csv

with open('sample.csv', 'r') as f:
    reader = csv.reader(f)
    header = next(reader)
    for row in reader:
        print(row)

next(reader)がヘッダー行を取得し、次の行からデータを読み込んでいます。

csv.DictReaderを使った辞書形式の読み込み

csv.DictReaderを使用すると、各行を辞書としても読み込めます

このとき、ヘッダー行が辞書のキーとして使用されます。

import csv

with open('sample.csv', 'r') as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(row)

各行が辞書として出力。

辞書のキーはCSVファイルのヘッダーに対応し、値は各行のデータに対応します。

列名を指定してデータにアクセスできるのです。

CSVファイルの内容をリストや辞書に格納

読み込んだCSVファイルの内容を、リストや辞書に格納すれば、後続の処理でデータを簡単に扱えます。

  • 内包表記を使ってリストに格納
  • フィールドの型変換
  • 辞書形式のデータ作成

内包表記を使ってリストに格納

Pythonの内包表記を使って、読み込んだデータをリストに格納できます。

以下は、CSVファイルの各行をリストとして保持するリストを作成する方法です。

import csv

with open('sample.csv', 'r') as f:
    reader = csv.reader(f)
    data = [row for row in reader]

print(data)

このコードを実行すると、dataにはCSVファイルの各行がリストとして格納されます。

内包表記についてはこちらをどうぞ。

【完全版】Pythonの内包表記|サンプルコード付きで書き方を解説
Pythonの内包表記について詳しく知りたいですか?内包表記はPython言語特有の強力で効率的なツールで、コードを簡潔で読みやすく書くための基本的なテクニックです。当記事では、Pythonの内包表記の使用法を具体的なコードと一緒に詳細に解説しています。特にPython初心者の方は必読です。

フィールドの型変換

CSVファイルはテキスト形式のファイルなので、数値データも文字列として読み込まれます。

数値として扱うためには、読み込み時に型変換をおこないましょう。

以下の例では、整数データが含まれる列の値をint型に変換しています。

import csv

with open('sample.csv', 'r') as f:
    reader = csv.reader(f)
    data = [[int(cell) if cell.isdigit() else cell for cell in row] for row in reader]

print(data)

リスト内包表記の中でさらに内包表記を用いて、各セルが整数表記の文字列である場合にint型への変換をおこなっています。

辞書形式のデータ作成

csv.DictReaderを使えば、CSVファイルの各行を辞書として読み込むことができました。

辞書のキーはCSVファイルのヘッダー行に対応します。

全ての行を辞書のリストとして保持することで、列名を指定してデータにアクセスすることが可能になるのです。

import csv

with open('sample.csv', 'r') as f:
    reader = csv.DictReader(f)
    data = [dict(row) for row in reader]

print(data)

dataにCSVファイルの全ての行が辞書として格納されます。

この辞書のリストを使えば、後続の処理で列名をキーとしてデータにアクセスが可能です。

まとめ

当記事では、PythonでCSVファイルを読み込む方法とその活用法について学習してきました。

  • PythonとCSVファイルの基本的な関係性
  • Pythonのインストール方法と、サンプルのCSVファイルの作成方法
  • Pythonのcsvモジュールを使ったCSVファイルの読み込み方法
  • CSVファイルの内容をリストや辞書に格納する方法

このチュートリアルで学んだ内容を基に、さらにPythonとCSVファイルを活用するためには、以下のような情報を追求することをおすすめします。

  • csvモジュールの詳細な仕様やオプションについて学ぶ
  • データ分析ライブラリ(例えば、pandasやNumPy)を使ったCSVファイルの扱い方を学ぶ
  • CSVファイル以外のデータフォーマット(例えば、JSONやXML)とPythonの連携について学ぶ

PythonとCSVの組み合わせは、データ分析や機械学習など、さまざまなシーンで役立ちます。

ぜひ今回学んだ知識を活用して、更なるスキルアップを目指してください。

タイトルとURLをコピーしました