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ファイル作成時に文字化け
作成した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.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()
関数を使います。