[Python]CSVファイルを作成、保存(書き込み)、改行指定

Pythonを使ってCSVファイルを作成、保存(書き込み)、改行指定する方法を紹介します。

CSVファイルとは

CSVファイルとは、Comma-Separated Values(カンマ区切りのデータ)の略称で、テキストファイルの一種です。CSVファイルは、表形式のデータを扱うのに適しており、Microsoft ExcelやGoogleスプレッドシートなどの表計算ソフトウェアでも扱えます。

Pythonを利用したCSVファイルの作成方法について

Pythonを利用してCSVファイルを作成する方法は、標準ライブラリのcsvモジュールやPandasライブラリを使う方法があります。ここでは、csvモジュールを使用した方法を紹介します。

csvモジュールを使ったCSVファイルの作成方法

csvモジュールを使ったCSVファイルの作成方法は、以下のようになります。

import csv
# ヘッダーを含むデータをリストで作成
data = [['Name', 'Age', 'Gender'], ['Alice', 25, 'Female'], ['Bob', 30, 'Male'], ['Charlie', 35, 'Male']]
# ファイルを開く
with open('sample.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    
    # データを書き込む
    writer.writerows(data)

上記の例では、csv.writerオブジェクトを作成し、writerows()メソッドを使ってデータをCSVファイルに書き込んでいます。newline=”は、改行コードを指定する引数で、空文字列を指定することで改行コードを無効にしています。また、encoding=’utf-8’は、文字コードを指定する引数で、UTF-8を指定しています。

Pandasライブラリを使用したCSVファイルの作成方法

Pandasライブラリを使用したCSVファイルの作成方法は、以下のようになります。

import pandas as pd
# ヘッダーを含むデータを作成
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Gender': ['Female', 'Male', 'Male']}
df = pd.DataFrame(data)
# ファイルを保存する
df.to_csv('sample.csv', index=False, encoding='utf-8')

上記の例では、pandas.DataFrameオブジェクトを作成し、to_csv()メソッドを使ってCSVファイルに保存しています。index=Falseは、行番号を出力しないようにする引数です。

CSVファイルへのデータの書き込み方法

CSVファイルへのデータの書き込み方法は、csv.writerオブジェクトのwriterow()メソッドまたはwriterows()メソッドを使って行単位または複数行単位で書き込むことができます。

csv.writerオブジェクトのwriterow()メソッドを使った書き込み方法

csv.writerオブジェクトのwriterow()メソッドを使った書き込み方法は、以下のようになります。

import csv
# ファイルを開く
with open('sample.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    
    # ヘッダーを書き込む
    writer.writerow(['Name', 'Age', 'Gender'])
    
    # データを書き込む
    writer.writerow(['Alice', 25, 'Female'])
    writer.writerow(['Bob', 30, 'Male'])
    writer.writerow(['Charlie', 35, 'Male'])

csv.writerオブジェクトのwriterows()メソッドを使った書き込み方法

csv.writerオブジェクトのwriterows()メソッドを使った書き込み方法は、以下のようになります。

import csv
# データをリストで作成
data = [['Name', 'Age', 'Gender'], ['Alice', 25, 'Female'], ['Bob', 30, 'Male'], ['Charlie', 35, 'Male']]
# ファイルを開く
with open('sample.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    
    # データを書き込む
    writer.writerows(data)

CSVファイルへのデータ書き込み時の改行指定方法

CSVファイルへのデータ書き込み時の改行指定方法は、csv.writer()関数やcsv.writerオブジェクトを作成する際に、newline引数に改行コードを指定することで設定できます。以下は、改行コードにCRLF(Windowsの改行コード)を指定する例です。

import csv
# ファイルを開く
with open('sample.csv', 'w', newline='\r\n', encoding='utf-8') as f:
    writer = csv.writer(f)
    
    # データを書き込む
    writer.writerow(['Name', 'Age', 'Gender'])
    writer.writerow(['Alice', 25, 'Female'])
    writer.writerow(['Bob', 30, 'Male'])
    writer.writerow(['Charlie', 35, 'Male'])

CSVファイルの保存方法

CSVファイルの保存方法は、ファイルを開いて書き込む方法と、Pandasライブラリのto_csv()メソッドを使って保存する方法があります。

ファイルを開いて書き込む方法

ファイルを開いて書き込む方法は、以下のようになります。

import csv
# ファイルを開く
with open('sample.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    
    # データを書き込む
    writer.writerow(['Name', 'Age', 'Gender'])
    writer.writerow(['Alice', 25, 'Female'])
    writer.writerow(['Bob', 30, 'Male'])
    writer.writerow(['Charlie', 35, 'Male'])

Pandasライブラリのto_csv()メソッドを使って保存する方法

Pandasライブラリのto_csv()メソッドを使って保存する方法は、以下のようになります。

import pandas as pd
# データを作成
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Gender': ['Female', 'Male', 'Male']}
df = pd.DataFrame(data)
# ファイルを保存する
df.to_csv('sample.csv', index=False, encoding='utf-8')

PythonでのCSVファイル操作についての注意点

  • CSVファイルを開いたら必ずファイルを閉じるようにしましょう。
  • CSVファイルを書き込む際に、改行コードに注意しましょう。
  • CSVファイルに書き込むデータは、文字列や数値など基本的なデータ型のみ対応しています。リストや辞書などの複合的なデータ型はCSVファイルに直接書き込めません。
  • CSVファイルに書き込む際に、文字コードに注意しましょう。特に日本語を含む場合は、UTF-8を使うことをおすすめします。

まとめ

Pythonを使ってCSVファイルを作成、保存(書き込み)、改行指定する方法を紹介しました。csvモジュールやPandasライブラリを使うことで、簡単にCSVファイルの操作ができます。また、CSVファイルに書き込む際には、改行コードや文字コードに注意することが重要です。