PythonでリストをCSVに変換!文字列&数値に対応【活用例あり】

PythonでリストをCSVに変換!文字列&数値に対応【活用例あり】

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に変換するスキルは、初学者にも実務にも役立つ基本スキルです。ぜひ活用してみてください。