Python でリストを CSV に書き込む方法

Azaz Farooq 2023年1月30日
  1. Python でリストを CSV に書き込むには csv.writer() メソッドを使用する
  2. 引用符メソッドを使って Python でリストを CSV に書き込む
  3. Python で pandas メソッドを用いてリストを CSV に書き出す
  4. Python で NumPy メソッドを使ってリストを CSV に書き込む
Python でリストを CSV に書き込む方法

CSV ファイルは、表形式でデータを保存することができます。このデータは単純なテキストで、データの 1 行ごとをレコードと呼び、1つ 1つをカンマで区切ることができます。

この記事では、Python でリストを CSV に書き込む方法について説明します。

Python でリストを CSV に書き込むには csv.writer() メソッドを使用する

まず、csv モジュールをインポートしてみよう。

import csv

以下のエントリを CSV ファイルに書き出すとします。

RollNo, Name, Subject
1, ABC, Economics
2, TUV, Arts
3, XYZ, Python

これで、完全なサンプルコードは以下のようになります。

import csv

with open("students.csv", "w", newline="") as student_file:
    writer = csv.writer(student_file)
    writer.writerow(["RollNo", "Name", "Subject"])
    writer.writerow([1, "ABC", "Economics"])
    writer.writerow([2, "TUV", "Arts"])
    writer.writerow([3, "XYZ", "Python"])

上記のコードを実行すると、カレントディレクトリに students.csv ファイルが行単位で作成されます。関数 csv.writer()writer() オブジェクトを生成し、writer.writerow() コマンドは行単位でエントリを CSV ファイルに挿入します。

引用符メソッドを使って Python でリストを CSV に書き込む

この方法では、引用符を使って CSV ファイルに値を書き込む方法を見ていきます。完全なサンプルコードは以下の通りです。

import csv

list = [["RN", "Name", "GRADES"], [1, "ABC", "A"], [2, "TUV", "B"], [3, "XYZ", "C"]]
with open("studentgrades.csv", "w", newline="") as file:
    writer = csv.writer(file, quoting=csv.QUOTE_ALL, delimiter=";")
    writer.writerows(list)

カレントディレクトリに studentgrades.csv ファイルが作成されます。関数 csv.QUOTE_ALL() は、区切り文字 ; を使用して、すべてのエントリを二重引用符で囲みます。

出力:

RN;"Name";"GRADES"
1;"ABC";"A"
2;"TUV";"B"
3;"XYZ";"C"

Python で pandas メソッドを用いてリストを CSV に書き出す

この方法では、完全なデータフレームを保持する Pandas ライブラリを用います。このライブラリが PC にインストールされていない場合は、Google Colab というオンラインツールを利用することができます。

完全なサンプルコードは以下の通りです。

import pandas as pd

name = ["ABC", "TUV", "XYZ", "PQR"]
degree = ["BBA", "MBA", "BSC", "MSC"]
score = [98, 90, 88, 95]
dict = {"name": name, "degree": degree, "score": score}
df = pd.DataFrame(dict)
df.to_csv("test.csv")

出力:

	name	degree	score
0	ABC	    BBA	     98
1	TUV	    MBA	     90
2	XYZ	    BSC	     88
3	PQR	    MSC	     95

このメソッドは、Python のリストをデータフレームとして CSV ファイルに書き出します。

Python で NumPy メソッドを使ってリストを CSV に書き込む

このメソッドは NumPy ライブラリを用いて、Python でリストを CSV ファイルに保存します。完全なサンプルコードは以下の通りです。

import numpy as np

list_rows = [
    ["ABC", "COE", "2", "9.0"],
    ["TUV", "COE", "2", "9.1"],
    ["XYZ", "IT", "2", "9.3"],
    ["PQR", "SE", "1", "9.5"],
]
np.savetxt("numpy_test.csv", list_rows, delimiter=",", fmt="% s")

NumPy ライブラリの savetxt() 関数は Python のリストから CSV ファイルを書き出します。

出力:

ABC	 COE	2	9
TUV	 COE	2	9.1
XYZ	 IT	2	9.3
PQR	 SE	1	9.5

関連記事 - Python CSV

関連記事 - Python List