Pythonでは、リストというデータ構造を使って複数の値をまとめて扱うことができます。そして、そのリストをCSV(カンマ区切り値)という形式に変換することで、他のアプリケーションと連携したり、データを保存・共有したりするのにとても便利になります。
本記事では、「PythonでリストをCSVに変換」する方法を、文字列だけでなく数値も含めて丁寧に解説します。また、CSV形式に変換するメリットや、実際の活用シーンも紹介するので、プログラミング初心者の方から実務で使いたい方まで、幅広く参考にしていただける内容になっています。
PythonでリストをCSV形式に変換するとはどういうことか?
Pythonのリストは、複数のデータをまとめて一つの変数で管理できる便利な構造です。たとえば次のように、果物の名前をリストで管理できます。
fruits = ["りんご", "ばなな", "みかん"]
これをCSV形式に変換すると、次のようなカンマで区切られた文字列になります。
りんご,ばなな,みかん
CSV(Comma Separated Values)とは、「カンマで区切られた値」という意味で、Excelやスプレッドシートなど多くのアプリケーションで扱える形式です。文字列として出力することで、ファイル保存や他のプログラムとの連携がしやすくなります。
Pythonで文字列のリストをCSVに変換する方法
Pythonでは、join()
という文字列メソッドを使うことで、リストの要素を一つの文字列にまとめることができます。
fruits = ["りんご", "ばなな", "みかん"]
csv_string = ",".join(fruits)
print(csv_string)
出力結果:
りんご,ばなな,みかん
このように、リストの中身がすべて文字列であれば、非常に簡単にCSV形式に変換できます。
数値を含むリストをCSVに変換するには?
リストの中に文字列だけでなく数値(整数や小数など)が含まれている場合、join()
を使うには注意が必要です。なぜなら、join()
は文字列専用のメソッドなので、数値が混じっているとエラーになります。
たとえば以下のコードはエラーになります。
mixed_list = ["りんご", 100, "ばなな", 200]
csv_string = ",".join(mixed_list) # エラーになる
このような場合は、リスト内のすべての要素を文字列に変換してから join()
を使う必要があります。
mixed_list = ["りんご", 100, "ばなな", 200]
csv_string = ",".join(str(item) for item in mixed_list)
print(csv_string)
出力結果:
りんご,100,ばなな,200
このコードでは、リスト mixed_list
に文字列と整数が混在しているため、str(item)
で各要素を文字列に変換しています。join()
は、引数として与えられた要素すべてが文字列である必要があるため、数値を含む場合はこのような前処理が必要です。
ここで使われている str(item) for item in mixed_list
は「リスト内包表記」と呼ばれ、リストの各要素に対して処理を行いながら新しいリスト(またはイテラブル)を作るPythonの便利な書き方です。
二次元リストをCSV形式にする方法
より実践的な場面では、次のような二次元リスト(リストの中にリストがある構造)をCSVにしたいこともあります。
data = [["名前", "年齢", "職業"], ["たろう", 25, "エンジニア"], ["はなこ", 30, "デザイナー"]]
これをCSVファイルに保存するには、Pythonの標準ライブラリ csv
を使うのが一般的です。
import csv
with open("sample.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerows(data)
これで sample.csv
というファイルに以下の内容が保存されます。
名前,年齢,職業
たろう,25,エンジニア
はなこ,30,デザイナー
csv
モジュールは、カンマのエスケープや改行コードの管理なども自動で行ってくれるため、安全にCSVを扱うには非常に便利です。
リストをCSVに変換するメリット
PythonでリストをCSV形式に変換することには多くのメリットがあります。
データの保存・共有がしやすい
CSVはテキストファイルとして保存できるため、容量が小さく扱いやすいフォーマットです。他のシステムやツールでも簡単に読み込めます。
ExcelやGoogleスプレッドシートと連携可能
CSVはExcelやGoogleスプレッドシートでそのまま開ける形式なので、プログラムで処理したデータを表計算ツールで確認・加工するのに便利です。
Webや他言語とのデータ連携にも強い
PHPやJavaScriptなど、他の言語でもCSVは標準的に扱えるため、Webアプリケーションとの連携にもよく使われます。
人間にも読みやすい形式
JSONやXMLと違い、CSVは見た目がシンプルでわかりやすいため、ログやレポート出力にも適しています。
PythonでCSV形式を活用する場面
PythonでCSVに変換したリストは、さまざまなシーンで活用できます。
ファイル保存用のデータ形式として
たとえば、商品の一覧やユーザーの登録情報などをリストでまとめ、それをCSVファイルに保存すれば、後で再利用や解析が容易になります。
データのインポート・エクスポート
他のシステムやアプリケーションにデータを受け渡す際に、CSVは共通フォーマットとして広く使われています。
表形式データの可視化前処理
分析や可視化のために、まずデータをCSVで整形してからPandasやMatplotlibに渡すというステップでもよく使われます。
まとめ
PythonでリストをCSVに変換する方法は、文字列だけでなく数値や二次元リストなど、状況に応じて使い分けることが大切です。
join()
を使って文字列リストをカンマ区切りに- 数値を含むリストは
str()
で文字列に変換してからjoin()
- 二次元リストは
csv
モジュールでCSVファイルに書き込み
これらを使いこなせば、データの保存・共有・連携がスムーズに行えるようになります。
PythonでリストをCSVに変換するスキルは、初学者にも実務にも役立つ基本スキルです。ぜひ活用してみてください。