業務でPythonを使うなら、CSVやExcelの処理は非常に重要です。 名簿、売上表、点検記録、ログ、集計表など、多くのデータは表形式で扱われます。
CSVとは何か
CSVは、カンマ区切りでデータを保存するシンプルな形式です。 Excelでも開けますが、中身はただのテキストです。name,age
田中,20
佐藤,30
構造が単純なので、Pythonから扱いやすい形式です。
標準ライブラリcsvで読む
import csv
with open("members.csv", "r", encoding="utf-8") as f:
reader = csv.reader(f)
for row in reader:
print(row)
1行ずつリストとして読み込まれます。
DictReaderで読む
列名を使って読みたい場合はDictReader が便利です。
import csv
with open("members.csv", "r", encoding="utf-8") as f:
reader = csv.DictReader(f)
for row in reader:
print(row["name"], row["age"])
列名でアクセスできるので、実務ではこちらの方が読みやすいことが多いです。
CSVを書き出す
import csv
rows = [
["name", "age"],
["田中", 20],
["佐藤", 30],
]
with open("output.csv", "w", encoding="utf-8", newline="") as f:
writer = csv.writer(f)
writer.writerows(rows)
Windowsでは newline="" を付けないと空行が増えることがあります。
Excelを扱うopenpyxl
Excelファイルを扱うにはopenpyxl がよく使われます。
python -m pip install openpyxl
簡単な書き込み例です。
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws["A1"] = "名前"
ws["B1"] = "年齢"
ws.append(["田中", 20])
ws.append(["佐藤", 30])
wb.save("members.xlsx")
pandasという選択肢
大量の表データを処理する場合はpandas が便利です。
python -m pip install pandas openpyxl
import pandas as pd
df = pd.read_csv("members.csv")
print(df)
df.to_excel("members.xlsx", index=False)
pandasは強力ですが、初心者はまずCSVの仕組みを理解してから使うとよいです。
- 名前と年齢のCSVを作る
- Pythonで読み込んで表示する
- 30歳以上だけ表示する
- Excelファイルに書き出す
理解チェック
- この回の目的を一文で説明できる
- サンプルコードを自分のPCで実行できる
- エラーが出た場合、どの行で起きたか確認できる
- 少しだけ値や文字を変えて、結果の違いを確認できる