この記事では、Pythonを使用してCSVファイルのデータを加工し、新しいCSVファイルとして出力する方法について解説します。具体的なコード例やその詳細な解説、さらに応用例を含めて解説していきます。
目次
はじめに
CSVファイルは、多くのシステムで広く利用されています。CSVファイルを加工するスキルは、データ分析から自動化まで多岐にわたる用途で役立ちます。Pythonはそのようなファイル操作を効率よく行うためのツールとして非常に優れています。
基本的なCSVファイルの加工方法
PythonでCSVファイルを読み込む
まずは、Pythonの`csv`モジュールを使用してCSVファイルを読み込む基本的な方法から始めましょう。
import csv
# CSVファイルを開く
with open('input.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
print(row)
このコードは、`input.csv`という名前のCSVファイルを読み込み、各行を表示します。
CSVデータの加工
次に、読み込んだCSVデータに何らかの加工を施しましょう。例として、各行の第一列の値を2倍にします。
import csv
# CSVファイルを開く
with open('input.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
row[0] = int(row[0]) * 2 # 第一列の値を2倍に
print(row)
新しいCSVファイルとして出力
加工したデータを新しいCSVファイルとして保存する方法を見てみましょう。
import csv
# 新しいCSVファイルとして出力
with open('output.csv', 'w', newline='') as f:
writer = csv.writer(f)
with open('input.csv', 'r') as rf:
reader = csv.reader(rf)
for row in reader:
row[0] = int(row[0]) * 2 # 第一列の値を2倍に
writer.writerow(row)
応用例
例1: 条件に基づいて行をフィルタリング
第一列の値が10より大きい行だけを新しいCSVファイルとして保存する例です。
with open('filtered_output.csv', 'w', newline='') as f:
writer = csv.writer(f)
with open('input.csv', 'r') as rf:
reader = csv.reader(rf)
for row in reader:
if int(row[0]) > 10:
writer.writerow(row)
例2: 列を追加
各行に新しい列を追加して、その値を設定する例です。
with open('added_column_output.csv', 'w', newline='') as f:
writer = csv.writer(f)
with open('input.csv', 'r') as rf:
reader = csv.reader(rf)
for row in reader:
row.append('new_value') # 新しい列を追加
writer.writerow(row)
例3: 複数のCSVファイルを結合
複数のCSVファイルを一つに結合する例です。
with open('merged_output.csv', 'w', newline='') as f:
writer = csv.writer(f)
for filename in ['input1.csv', 'input2.csv']:
with open(filename, 'r') as rf:
reader = csv.reader(rf)
for row in reader:
writer.writerow(row)
まとめ
この記事では、Pythonを使用してCSVファイルのデータを加工し、新しいCSVファイルとして出力する方法について解説しました。基本的な操作から応用例までを網羅していますので、ぜひ参考にしてください。
コメント