PythonのCSV作成 リストのファイルへの出力方法

PythonでCSV作成

PythonでCSV作成

PythonのCSV作成のサンプルコード

PythonのCSV作成のサンプルコード

以下のサンプルコードは、PythonでCSVファイルを作成する方法を示しています。

import csv

# CSVファイルのヘッダー行
header = ['name', 'age', 'city']

# CSVファイルのデータ行
data = [
['Alice', 25, 'New York'],
['Bob', 30, 'San Francisco'],
['Charlie', 35, 'Chicago'],
]

# CSVファイルを書き込みモードでオープン
with open('people.csv', 'w', newline='') as f:
# CSVライターを作成
writer = csv.writer(f)

# ヘッダー行を書き込む
writer.writerow(header)

# データ行を書き込む
writer.writerows(data)

このコードでは、CSVファイルを書き込みモードでオープンし、CSVライターを作成しています。その後、writerow()メソッドを使ってヘッダー行を書き込み、writerows()メソッドを使ってデータ行を書き込んでいます。

以下のCSVファイルが生成されます。

name,age,city
Alice,25,New York
Bob,30,San Francisco
Charlie,35,Chicago

また、CSVファイルを読み込むには、以下のようにファイルをオープンして、CSVリーダを作成します。

import csv

with open('people.csv', newline='') as f:
reader = csv.reader(f)
for row in reader:
print(row)

このコードでは、CSVファイルを読み込みモードでオープンし、CSVリーダーを作成しています。その後、forループを使用して、各行のデータを読み込み、行を表示しています。

関連)Pythonでcsv読み込み 

PythonでCSVファイル作成時に文字化け

PythonでCSVファイル作成時に文字化け

作成したCSVファイルが文字化けする場合、エンコードする文字コードを指定する必要があります。一般的にはUTF-8であれば文字化けしませんが、Microsoft系のExcelはShift-JISにしないと文字化けするんですよね。

例えば、UTF-8でファイルを作成する場合は以下のように指定します。

with open('file.csv', 'w', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
# データの書き込み

また、Shift_JISやEUC-JPのような特定の文字コードでファイルを作成する場合は、それぞれの文字コードを指定する必要があります。文字コードが不明な場合は、ファイルをテキストエディタで開けば、文字コードを確認することができます。

ダブルクォーテーションをつけてCSV作成

ダブルクォーテーションをつけてCSV作成

データ自体にカンマ(,)が含まれている場合など、CSVデータにダブルクォーテーションをつけたい場合があります。

csv.writerのdelimiterとquotecharを指定することで、ダブルクォーテーションつきのCSVファイルを作成できます。

import csv

header = ['name', 'age', 'city']
data = [
['Alice', 25, 'New York'],
['Bob', 30, 'San Francisco'],
['Charlie', 35, 'Chicago'],
]

with open('people.csv', 'w', newline='') as f:
writer = csv.writer(f, delimiter=',', quotechar='"')
writer.writerow(header)
writer.writerows(data)

このコードでは、ダブルクォーテーションで囲んだデータが以下のように書き込まれます。

name,age,city
"Alice",25,"New York"
"Bob",30,"San Francisco"
"Charlie",35,"Chicago"

 

pandasのデータフレームを使ってcsv作成

pandasを使ってCSVファイルを作成するサンプルコード。

import pandas as pd

# CSVファイルのヘッダー行
header = ['name', 'age', 'city']

# CSVファイルのデータ行
data = [
['Alice', 25, 'New York'],
['Bob', 30, 'San Francisco'],
['Charlie', 35, 'Chicago'],
]

# DataFrameを作成
df = pd.DataFrame(data, columns=header)

# CSVファイルに書き込む
df.to_csv('people.csv', index=False)

このコードでは、pandasのDataFrameを作成して、to_csv()メソッドを使ってCSVファイルに書き込んでいます。index=Falseを指定すると、行番号がCSVファイルに書き込まれなくなります。

また、pandasを使ってCSVファイルを読み込むには、以下のようなコードを実行します。

import pandas as pd

# CSVファイルを読み込む
df = pd.read_csv('people.csv')

# DataFrameを表示する
print(df)

このコードでは、pandasのread_csv()メソッドを使ってCSVファイルを読み込んでいます。読み込んだデータはDataFrameとして扱われます。DataFrameを表示するには、print()関数を使います。