Pythonでwriterowsメソッドを使って複数行のデータをCSVに書き込む方法

この記事では、Pythonの`csv`ライブラリを使用して、`writerows`メソッドで複数行のデータを一度にCSVファイルに書き込む方法について詳しく解説します。具体的なコード例とその詳細、さらに応用例までを包括的に扱います。

目次

はじめに

CSV(Comma-Separated Values)ファイルは、データの保存やデータの交換に非常によく使用されます。Pythonの標準ライブラリである`csv`モジュールを使用すると、CSVファイルの読み書きが容易になります。この記事では、特に`writerows`メソッドにフォーカスして、その使用方法と応用例を紹介します。

基本的な使い方

`writerows`メソッドとは

`writerows`メソッドは、`csv`ライブラリに含まれているメソッドの1つです。このメソッドを使うと、リストのリスト(2次元リスト)を引数として、複数行のデータを一度にCSVファイルに書き込むことができます。

# インポート
import csv

# CSVファイルを開く
with open('example.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    # 複数行を一度に書き込む
    writer.writerows([['Name', 'Age'], ['Alice', 28], ['Bob', 22], ['Charlie', 33]])

コードの解説

1. 最初に`csv`モジュールをインポートしています。
2. `with open`ステートメントを使ってCSVファイル(この例では`example.csv`)を開きます。
3. `csv.writer`メソッドでCSVファイルに書き込むための`writer`オブジェクトを作成します。
4. `writer.writerows`メソッドで、一度に複数行をCSVファイルに書き込みます。

応用例

1. データフレームからCSVへ

Pandasのデータフレームから直接`writerows`メソッドを使ってCSVに書き込むことも可能です。

import pandas as pd
import csv

# データフレームを作成
df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [28, 22, 33]})

# データフレームから2次元配列へ変換
data = [df.columns.tolist()] + df.values.tolist()

# CSVに書き込む
with open('from_dataframe.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerows(data)

2. 条件分岐での書き込み

特定の条件を満たす行だけをCSVに書き込むこともできます。

data = [['Name', 'Age'], ['Alice', 28], ['Bob', 22], ['Charlie', 33]]

filtered_data = [row for row in data if row[1] >= 30]

with open('filtered.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerows(filtered_data)

3. エンコーディング指定

`open`メソッドの`encoding`引数を指定することで、異なる文字コードでの書き込みが可能です。

with open('example_sjis.csv', 'w', newline='', encoding='shift_jis') as f:
    writer = csv.writer(f)
    writer.writerows([['Name', 'Age'], ['Alice', 28], ['Bob', 22], ['Charlie', 33]])

まとめ

`writerows`メソッドを用いると、Pythonで非常に効率よく複数行のデータをCSVファイルに書き込むことができます。特にデータ処理が多い場合や自動化を考慮する際には、このメソッドは非常に便利です。

コメント

コメントする

目次