2次元リストのデータをCSVファイルに出力したいけど、やり方を知らない人もいるでしょう。
この記事では、プログラミング初心者にもわかりやすく、Pythonを使って2次元リストのデータをCSVファイルに出力する方法を解説します。
CSVファイルへの出力方法
Pythonで2次元リストのデータをCSVファイルに出力する方法は主に2つあります。
csvモジュールを使った方法と、pandasライブラリを使った方法です。
それぞれの方法について、基本構文や手順、オプション設定と注意点を解説していきます。
csv.writerを使った方法
csvモジュールはPythonの標準ライブラリに含まれているため、追加でインストールする必要はありません。
csv.writerを使って2次元リストをCSVファイルに書き込む方法を見ていきましょう。
csv.writerの基本構文
csv.writerを使ってCSVファイルに書き込む基本構文は以下のようになります。
import csv
with open('output.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(['列1', '列2', '列3'])
writer.writerow(['データ1', 'データ2', 'データ3'])
2次元リストをCSVファイルに書き込む手順
2次元リストをCSVファイルに書き込む手順は以下の通りです。
- csvモジュールをインポートする
- CSVファイルを開く(‘w’モードで開くことで書き込みが可能になります)
- csv.writerオブジェクトを作成する
- writerowメソッドを使って1行ずつデータを書き込む
例えば、以下のような2次元リストをCSVファイルに書き込む場合、
data = [
['列1', '列2', '列3'],
['データ1', 'データ2', 'データ3'],
['データ4', 'データ5', 'データ6']
]
以下のように書き込むことができます。
import csv
data = [
['列1', '列2', '列3'],
['データ1', 'データ2', 'データ3'],
['データ4', 'データ5', 'データ6']
]
with open('output.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
for row in data:
writer.writerow(row)
オプション設定と注意点
csv.writerを使う際のオプション設定と注意点を以下に示します。
newline=''
を指定することで、改行コードの問題を回避できます。encoding='utf-8'
を指定することで、文字コードをUTF-8に設定できます。元ファイルがshift-jis
などだと文字化けが発生するので、他の文字コードを使いたい場合は、適宜変更してください。- writerowメソッドは1行ずつデータを書き込むため、2次元リストのデータを一度に書き込むことはできません。for文を使って1行ずつ書き込むようにしましょう。
pandasを使った方法
pandasはPythonでデータ解析を行うための強力なライブラリです。
pandasを使って2次元リストをCSVファイルに書き込む方法を見ていきましょう。
pandasのインストールとインポート
pandasは標準ライブラリには含まれていないため、まずはインストールが必要です。
pip install pandas
インストールが完了したら、以下のようにインポートして使用します。
import pandas as pd
2次元リストをデータフレームに変換
pandasでは、2次元リストをデータフレームという形式に変換して扱います。
以下のようにしてデータフレームに変換できます。
import pandas as pd
data = [
['列1', '列2', '列3'],
['データ1', 'データ2', 'データ3'],
['データ4', 'データ5', 'データ6']
]
df = pd.DataFrame(data[1:], columns=data[0])
列1 列2 列3
0 データ1 データ2 データ3
1 データ4 データ5 データ6
データフレームをCSVファイルに出力する手順
データフレームをCSVファイルに出力するには、以下のようにto_csvメソッド
を使います。
df.to_csv('output.csv', index=False, encoding='utf-8')
オプション設定と注意点
pandasを使ってCSVファイルに出力する際のオプション設定と注意点を以下に示します。
index=False
を指定することで、データフレームのインデックスがCSVファイルに出力されなくなります。encoding='utf-8'
を指定することで、文字コードをUTF-8に設定できます。他の文字コードを使いたい場合は、適宜変更してください。- データフレームを作成する際に、columns引数で列名を指定することができます。指定しない場合は、デフォルトで0から始まる整数が列名として使用されます。