【Python × pandas】ParserError: Expected 1 fields in line 8, saw 2 の原因と対処法|on_bad_linesでエラー回避

Pythonでpandasを使ってCSVファイルを読み込んでいると、以下のようなエラーに遭遇することがあります。

ParserError: Error tokenizing data. C error: Expected 1 fields in line 8, saw 2

一見すると難解なこのエラーですが、実際にはCSVファイルの中に想定外の形式の行が含まれていることが原因です。

今回はこのエラーの意味と、実際に私が遭遇した事例、そして有効だった対処法について解説いたします。


目次

エラーの意味:行ごとの列数が一致していない


このエラーは、pandas.read_csv() でCSVファイルを読み込む際に、特定の行(今回の例では8行目)において、他の行と異なる列数が見つかった場合に発生します。

例えば、以下のようなCSVがあったとします:

名前,年齢,性別
田中,28,男性
佐藤,35,女性
,,,, ←← 空白やカンマだけの不正行
鈴木,41,男性

このようなケースでは、3列を期待しているのに5列(カンマ4つ)を含む行が混ざっており、pandas側でパース(構文解析)できずに ParserError が発生します。


エラーの原因:空白行や余計な区切り記号(カンマ)


私が遭遇したケースでは、CSVファイルに余計な空白行やカンマだけの行が含まれていたことが原因でした。

特に、手作業で作成されたCSVファイルや、他ツールからエクスポートされたデータでは、このような行が入りやすくなります。


有効だった対処法:on_bad_lines='skip' を使う


pandasの read_csv() 関数には、不正な行をスキップするためのオプションがあります。

以下のように書くことで、エラーの原因となる行を無視して処理を続けることができます。

import pandas as pd

csv_file_path = 'sample.csv'

df = pd.read_csv(
    csv_file_path,
    encoding='shift_jis',
    on_bad_lines='skip',         # 不正行をスキップ
    warn_bad_lines=True          # スキップされた行を警告表示(※pandas 1.3 以前向け)
)

print(df)

パラメータ解説

  • on_bad_lines='skip'
     → 不正な構文の行(列数の不一致など)を無視して読み込みを継続します
     ※pandas 1.3.0以降で使用可能
  • warn_bad_lines=True
     → スキップした行に関する警告を表示します
     ※このオプションはpandas 1.3以降では非推奨です。代わりに on_bad_lines='warn' を使用してください

その他の回避方法(状況に応じて)


もし on_bad_lines='skip' を使いたくない、あるいはエラーの原因を根本から取り除きたい場合には、以下のような方法もあります:

  • 事前にCSVをテキストエディタなどで開き、空行や不正行を削除する
  • error_bad_lines=False を使う(古いバージョン用)
  • csv.reader() を使って1行ずつ処理する(柔軟だがやや煩雑)

まとめ

ParserError: Expected X fields in line Y, saw Z は、CSVファイル内で列数が不一致な行があることが原因で発生するエラーです。

今回紹介した対処法:

  • on_bad_lines='skip' を指定することで不正な行をスキップ
  • warn_bad_lines=True で警告を出す(旧バージョン)

このエラーは、CSVの構造や整形処理が正しくできていないときに頻発します
業務用のデータ処理や自動化の中で遭遇することも多いため、覚えておくと安心です。

副業から独立まで「稼げる」Webスキルを習得する(PR)

ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。

「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。

このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。

講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。

副業に特化した強み

  • 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
  • AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
  • 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。

受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。

受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。

ブログで稼ぎたいなら「メイカラ」

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次