【Python】CSVを読み込んで配列にデータを格納する方法

CSVファイルからデータを読み込んで、配列化してデータを扱いやすくしたい人もいるのではないでしょうか。

読み込む方法はわかるけど、文字列からセルごとに配列に格納する方法がわからない人もいるはずです。

そこでこの記事では、PythonでCSVファイルを操作するための準備から、CSVファイルの読み込み方法、データを配列に格納する方法、そしてよくあるエラーと対処法までを解説します。

目次から探す

PythonでCSVファイルを操作するための準備

PythonでCSVファイルを読み込んで配列に格納する方法を解説します。

CSVファイルは、データをカンマで区切って保存する形式で、表計算ソフトやデータベースとのデータのやり取りによく使われます。

PythonでCSVファイルを扱うには、標準ライブラリのcsvモジュールを使います。

必要なライブラリのインポート

csvモジュール

まずはじめに、PythonでCSVファイルを操作するために必要なライブラリをインポートします。

csvモジュールはPythonの標準ライブラリに含まれているため、追加でインストールする必要はありません。

以下のようにインポートします。


import csv

CSVファイルのサンプルデータ

この解説で使用するCSVファイルのサンプルデータを以下に示します。

このデータは、商品のID、名前、価格がカンマで区切られた形式で記載されています。

このCSVファイルをsample.csvという名前で保存し、Pythonプログラムと同じディレクトリに配置してください。

1,りんご,100
2,みかん,50
3,バナナ,120
4,ぶどう,300

次の見出しでは、このサンプルデータをPythonで読み込み、配列に格納する方法を解説します。

CSVファイルを読み込む方法

CSVファイルを読み込む方法にはいくつかの手順があります。

まずは、CSVファイルを開く方法から説明します。

CSVファイルを開く

open関数

Pythonでファイルを開くには、open関数を使用します。

open関数は、ファイル名とモードを引数に取り、ファイルオブジェクトを返します。

モードには、読み込み専用の'r'、書き込み専用の'w'、追記モードの'a'などがあります。

CSVファイルを読み込む場合は、読み込み専用モード'r'を使用します。


file = open('sample.csv', 'r')

with文を使ったファイルの開閉

open関数でファイルを開いた後、処理が終わったら必ずclose関数でファイルを閉じる必要があります。

しかし、with文を使うことで、ファイルの開閉を自動的に行うことができます。

with文を使ったファイルの開閉は以下のように記述します。


with open('sample.csv', 'r') as file:
    # ファイルの読み込み処理

CSVファイルを読み込む

csv.readerを使った読み込み

csv.readerを使ってCSVファイルを読み込む方法を説明します。

csv.readerは、ファイルオブジェクトを引数に取り、CSVファイルの各行をリストとして返すイテレータを生成します。

以下のサンプルコードでは、CSVファイルを読み込んで、各行を表示しています。


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

csv.DictReaderを使った読み込み

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

辞書のキーは、CSVファイルのヘッダー(1行目)になります。

以下のサンプルコードでは、CSVファイルを読み込んで、各行を辞書として表示しています。


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

これで、CSVファイルを読み込んで配列に格納する方法を解説しました。

csv.readercsv.DictReaderを使って、CSVファイルを簡単に読み込むことができます。

CSVデータを配列に格納する方法

CSVファイルを読み込んだ後、データを配列に格納する方法を解説します。

配列に格納することで、データの操作や加工が容易になります。

2次元配列に格納する方法

CSVデータを2次元配列に格納する方法を紹介します。

2次元配列とは、配列の中に配列が入っている形式のことです。

CSVデータは行と列で構成されているため、2次元配列に格納することが適切です。

for文を使ったデータの取り出し

まずは、for文を使ってCSVデータを2次元配列に格納する方法を見ていきましょう。


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

このコードでは、csv.readerで読み込んだCSVデータを、for文を使って1行ずつ取り出し、csv_dataという2次元配列に追加しています。

リスト内包表記を使ったデータの取り出し

次に、リスト内包表記を使ってCSVデータを2次元配列に格納する方法を見ていきましょう。


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

このコードでは、リスト内包表記を使って、for文を使った場合と同様にCSVデータを2次元配列に格納しています。

リスト内包表記を使うことで、コードが短くなり、読みやすくなります。

辞書型配列に格納する方法

次に、CSVデータを辞書型配列に格納する方法を紹介します。

辞書型配列とは、キーと値のペアでデータを格納する配列のことです。

CSVデータの各列に対応するキーを設定することで、データの操作が容易になります。

辞書形配列用にCSVファイルを読み込む場合はcsv.readerではなくcsv.DictReaderを使用します。間違えないようにしてください。

for文を使ったデータの取り出し

まずは、for文を使ってCSVデータを辞書型配列に格納する方法を見ていきましょう。


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

このコードでは、csv.DictReaderで読み込んだCSVデータを、for文を使って1行ずつ取り出し、csv_dataという辞書型配列に追加しています。

リスト内包表記を使ったデータの取り出し

次に、リスト内包表記を使ってCSVデータを辞書型配列に格納する方法を見ていきましょう。


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

このコードでは、リスト内包表記を使って、for文を使った場合と同様にCSVデータを辞書型配列に格納しています。

リスト内包表記を使うことで、コードが短くなり、読みやすくなります。

1 2

この記事のページ一覧
  1. 現在のページ
目次から探す