CodexでCSVの列ずれを調べる
公開 2026-09-12 更新 2026-09-12

関連テーマ:表とデータの内容を確かめる
CSVを取り込んだら列がずれたとき、カンマを一つ消すだけでは別の情報を壊すことがあります。Codexには、区切り文字・引用符・列数を確認し、変更前に問題の候補を報告してもらえます。
CSVは表をテキストとして保存する形式です。ここでは三列の小さな説明用データを使い、「列の中のカンマ」と「列の不足」を見分けます。実際の表は先にコピーして、元ファイルを残します。
引用符の中は一つの値になる
次の例を見ます。一行目は列名です。
id,title,note
001,読書会,"本,付箋"
002,買い物
本,付箋 は引用符で囲まれているため、一つの値として読めます。一方、最後の行には二つの値しかありません。文字としてのカンマを数えるだけでは、どちらの行が問題かを正しく判断できません。
Pythonの標準 csv モジュールは引用符などを扱って読み取ります。ファイルを使う場合は文字コードと改行の扱いも合わせます。拡張子が .csv でも、出力元によって区切りや記法が異なる場合があります。
各段階で確認してから、次の操作へ進みます。
- 1形式を確認区切り・引用符・期待する列数を決めます。
- 2構造を読む引用符内のカンマと不足列を区別します。
- 3意味を確かめる空欄の扱いを決めて別名へ直します。
具体的な依頼と、結果の確かめ方は本文にあります。
形式を確かめ、行の構造を読み、それから意味に合わせて修正します。空欄をゼロで埋めるのは、この点検とは別の判断です。
変更せずに列数を報告してもらう
このCSVを読み取り、列ずれの候補を報告してください。
先頭行はid,title,noteの三列、区切りはカンマ、引用符はダブルクォートです。
引用符内のカンマを別列として数えず、期待する列数と異なるレコードを示します。
元の文字列、読み取った列、問題の理由を表示してください。
空欄の補完、行の削除、数値への変換、ファイル保存はまだ行いません。
この例なら、ID001は三列で note が 本,付箋、ID002は二列です。改行を含む値もあるCSVでは、画面上の行番号とレコード番号が一致しないことがあります。問題の場所は元の内容も合わせて確認します。
短い処理で読み方を確かめる
Pythonがある環境で、ファイルを作らずに次の文字列を読む例です。コードを実行する場所が分からない場合は、Codexに説明だけを依頼しても構いません。
import csv
import io
sample = 'id,title,note\n001,読書会,"本,付箋"\n002,買い物\n'
rows = list(csv.reader(io.StringIO(sample, newline='')))
print(rows[1])
print(len(rows[2]))
編集環境のPython 3.12.14で、最初の出力は ['001', '読書会', '本,付箋']、次は 2 になることを確認しました。これは標準ライブラリの読み取り確認で、Codexモデルの検出精度の測定ではありません。
足りない列の意味を決めてから直す
ID002のメモが本当に空欄でよいと確認できたなら、行末へ区切りを追加し 002,買い物, にする案があります。元データが欠けている可能性があれば、出力元に戻って確認します。
ID002のnoteは空欄で正しいと確認しました。
そのレコードを三列にそろえ、別名のitems-checked.csvへ保存してください。
他の値、順序、IDの先頭ゼロは変更しません。保存先が存在したら上書きせず報告します。
再度読み取り、全レコードが三列で、ID001のメモが保持されるか確認してください。
修正版が期待どおりに取り込めなければ、元ファイルをそのまま使い、出力先の形式を確認します。文字自体が読めない場合は文字化けの確認、重複した行の整理は完全一致とID一致の違いへ進めます。
このテーマを続けて読む
列ずれ・重複・型・文字コードを確認し、元の情報を残して変換します。
表とデータの内容を確かめるの記事をまとめて見る