LoginSignup
1
0

今更だけどPythonの覚書

Posted at

はじめに

仕事で大量の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さんと会話しながら
作ったのですが、やはりこの手の作業をするのにはかなり役立ちますね。
覚書として作ったページなので、新しい何かをやったらここに追記していこうと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0