CSVGuide2026-10-12

CSV行末のカンマ1個が「空の余計な列」を作る

約5分で読めます

こんな人向けCSVインポートで一部行だけ列数エラーになる人
難易度入門

CSVの行末へ余分なカンマが入ったときに列数が1つ増え、インポーターで列数不一致になる仕組みと見つけ方を整理します。

目次を開く

見た目がほぼ同じ2行なのに、片方だけ「列数が合わない」と言われる。その原因が行末のカンマ1個ということがあります。

id,name,email
1,Sato,[email protected]
2,Tanaka,[email protected],

2行目は最後のカンマによって、空の4列目があるように解釈されます。

ヘッダーの列数と各行を比べる

ヘッダーが3列なら、各データ行も3フィールドを基本にします。RFC 4180でも、各レコードは同じ数のフィールドを持ち、最後のフィールドの後ろにカンマを置かない形が示されています。

表計算画面では見落としやすい

空の最終列はExcelやスプレッドシートでは存在感が薄く、テキストで見て初めて分かることがあります。

正常な3列行と末尾カンマで4列になる行の比較図

一部行だけなら機械検査する

数万行から末尾カンマを目視で探すより、各行のフィールド数をパーサーで比較します。単純な文字数ではなく、引用符内のカンマを考慮するCSVパーサーを使います。

CSV Preflightでも列数不一致を事前に検出できます。

本番投入前の最終チェック

問題行だけ直して終わらず、ヘッダーから最終行まで列数の分布を確認します。末尾カンマ以外に、引用符崩れや値内カンマで列が増えている行も同じ検査で見つけられます。

  • ヘッダー列数を数えた
  • 全行のフィールド数を比較した
  • 行末カンマを確認した
  • 引用符内カンマを区別した
  • 原本を残した

1行の見た目ではなく、全レコードの列数が同じかで確認すると再発しにくくなります。

修正後は「空列が消えただけ」か確認する

末尾カンマを削った後は、問題行の最後の実データまで削っていないかを確認します。修正前後で行数を比較し、代表行をCSVパーサーで読み直し、最終フィールドの値が保たれていることをREADBACKします。大量ファイルなら列数の分布を集計し、ヘッダーと異なる行が0件になったところまで確認すると、別原因の列ずれも同時に拾えます。

NEXT

次に読む。

CSV / Guide

CSVの住所や説明文にカンマがあるなら、そのセルだけ引用符で囲む

約5分

CSVの値そのものにカンマが含まれると列がずれる理由と、RFC 4180の基本に沿って二重引用符で1フィールドとして保持する方法を整理します。

CSV / Guide

pandasで列数が壊れたCSVを黙って捨てない。on_bad_linesを決める

約5分

pandas.read_csvで列数不一致の行に遭遇したとき、on_bad_linesの方針を明示し、欠損したレコードに気づかないまま処理を続けるのを防ぎます。

CSV / Guide

CSVのセル内に「"」を入れるなら、二重引用符をもう一つ重ねる

約5分

CSVの説明文や商品名に二重引用符を含めたいとき、フィールド全体を引用し、内部の引用符を二つ重ねてエスケープする基本を整理します。

SHARE
XBLUESKYFACEBOOKLINE