はじめに
仕事で大量のCSVファイルから集計してほしいという依頼が来ました。
データを解析するためにPythonを使ってみました。
※今までなら、ExcelVBAでやってたんですが、せっかくなので新しい学びもほしいなと思った次第。
CSVファイルを操作する
読み込み方
filename = 'target.csv'
with open(filename, encoding='utf8', newline='') as f:
csvreader = csv.reader(f)
for row in csvreader:
print(row)
こんな感じで取り込んだデータがrowに格納されるのでそれを利用すればOK
フィールドサイズが大きいCSVファイルを取り込む
標準の'csv'モジュールでは、131072(約128KB)がデフォルトの上限です。
以下のようにすることで制約によるエラーを回避することができます。
import csv
OVER_SIZE_LIMIT = 200_000_000
csv.field_size_limit(OVER_SIZE_LIMIT)
書き込み方
import csv
input_filename = 'input.csv'
output_filename = 'output.csv'
with open(input_filename, encoding='utf8', newline='') as in_file:
csv_reader = csv.reader(in_file)
with open(output_filename, 'w', newline='', encoding='utf-8') as out_file:
csv_writer = csv.writer(out_file)
for row in csv_reader:
csv_writer.writerow(row)
書き込みはこんな感じで行えました。
行の要素の取り出し
上の例では、rowにデータが入っていますが、各項目の値はrow[0]のように要素の番号を
指定してあげることで取得できます。
おわりに
これ以外にもJSONのデータを解析したりしながら
2時間程度で簡単なツール化完了。Python便利ですね。
また、今回はGoogleさんのお世話にならずに、ChatGPTさんと会話しながら
作ったのですが、やはりこの手の作業をするのにはかなり役立ちますね。
覚書として作ったページなので、新しい何かをやったらここに追記していこうと思います。