DESIGN / CODE / INFRA / AI

解説

AIに頼んだCSV集計を検算する:対象行・除外条件・合計を揃える手順

AIの集計結果を、架空データとPythonで照合。行数・対象ID・除外条件を揃え、ID重複や空欄を見逃さない確認手順を試そう。

AIに頼んだCSV集計を検算する:対象行・除外条件・合計を揃える手順

AIに表の集計を頼んだとき、もっともらしい説明だけで合計を採用していないかな。今回は、AIへの依頼に「何を合計するか」を添え、別の短いプログラムで件数と合計を照合する手順を作るよ。AIの計算能力を比べる記事ではなく、出てきた数字を自分で確認できる作業の組み立て方だよ。

最初に集計の約束を決める

例に使うのは、編集部が用意した架空の注文CSV。CSVは、表の行と列を文字で保存する形式だよ。実在する顧客情報や売上は使わない。

id item quantity unit_price_jpy status
A01 バナー 1 800 paid
A02 アイコン 2 500 paid
A03 下書き 1 300 cancelled

この例の約束は、paidの行だけを対象に、数量quantityと単価unit_price_jpyを掛けて合計すること。cancelledは除外する。金額は整数の円だけで、税・割引・外貨換算は扱わない。実際のデータへ使う場合は、そのルールを別に決めてからにしよう。

AIには対象と除外条件も渡す

次は、上の架空データと一緒に渡す依頼文の例。ファイルの添付可否や保存・学習の設定は使うサービスによって違う。業務データは組織が許可した環境で扱い、試すだけならこの架空データを使ってね。

このCSVについて、statusがpaidの行だけを集計してください。
各行はquantity × unit_price_jpyで計算します。
cancelledは除外します。税・割引・為替の計算はありません。
全行数、対象行数、除外行数、対象のid、行別金額、合計を分けて示してください。
ID重複・空欄・不明な状態・整数以外の数量や単価があれば、
推測で補わず、その行を示して集計を止めてください。

この依頼で必ず正解する、と保証するものではないよ。説明の文章ではなく、次の検算に必要な項目を揃えるための依頼なんだ。

Pythonで同じ条件を再計算する

検算にはPython 3.9以降を使う。追加ライブラリやAIのAPIキーは不要。ブラウザでPythonを実行する作例ではなく、自分の端末のターミナルで使うファイルだよ。

  1. 新しい空の練習フォルダを作る。
  2. 架空のorders.csvと検算用check_orders.pyを、そのフォルダへ保存する。
  3. テキストエディタで中身を確認する。スクリプトは指定したCSVを読み、結果を表示する。元ファイルの変更や通信は行わない。
  4. ターミナルでそのフォルダへ移動し、次を実行する。
python3 check_orders.py orders.csv

期待する結果は次のとおり。編集部のPython 3.9環境でも、この出力を確認したよ。

行数=3 / 対象=2 / 除外=1 / 合計=1800円

計算は800×1+500×2=1800。すべての3行を足すと2100になるので、合計だけでなく「対象2行・除外1行」も比較しよう。数量と単価を整数として検証してから計算するので、今回は小数の丸め規則を必要としない。

空欄や重複を黙って補わない

スクリプトは、見出しの名前と順番、列数、IDの重複、数量・単価の形式、状態の値を確認する。不正な行があれば、合計を成功結果として表示せず停止するよ。

たとえばA02のIDをA01へ変えたコピーでは、ID重複を知らせる。単価へ空欄や「1,000」を入れたコピーでは、整数形式の確認で止まる。元の練習ファイルは残し、失敗例はコピーで試してね。

Python公式のcsv資料では、読み込んだ値は通常文字列で、自動では数値に変換されないと説明されている。カンマを機械的に取り除いたり、空欄をすべて0へ変えたりする前に、入力の意味を確かめる必要があるんだ。

このサンプルは日本円の整数・paidとcancelledの2状態だけに対応する。返品、負数、小数、複数通貨、請求明細の税計算などをそのまま持ち込まないでね。

食い違ったときに戻る場所

症状 先に確認すること
合計が2100円 cancelledの行を含めていないか
合計が1300円 数量2を掛け忘れていないか
行数が違う 読み飛ばし、空行、列の崩れがないか
スクリプトが見つからない 保存場所と現在の作業フォルダが同じか
python3が見つからない Pythonの導入と、端末で使うコマンド名を確認する

結果が合わないまま文章だけを整えず、まず入力と条件へ戻ろう。異なるデータでの再計算は、その入力に合わせて検証条件も見直す。AIの回答を比較する観点は、出力比較のチェック表、依頼の組み立ては目的・素材・条件を分けるテンプレートにもまとめているよ。

参考・出典

みんなのコメント 0

感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。

最初のコメントをどうぞ。