Pandasでcsvファイル読み込むと「ParserError: Error tokenizing data. C error: Expected 2 fields in line 14, saw 3」

クレジットカードの明細をCSVで入手し、それをPandasのデータフレームに読み込もうとしましたが、いきなりつまずいてしまいました。その現象と対応内容について、まとめました。

現象

以下のコードを実行すると、ParseErrorが発生しました。

import pandas as pd
df = pd.read_csv('aaaaa.csv', encoding = 'shift_jis')

ParserError: Error tokenizing data. C error: Expected 2 fields in line 14, saw 3

原因

CSVの要素数が先頭が2だったのに、ある行から3に増えたところで、以上のエラーが発生します。

対応

一度、csvモジュールを使って、csvファイルをリストで読み込み、それをデータフレームに変換します。

import pandas as pd
import csv
pd.options.display.max_rows = None
pd.options.display.max_columns = None

with open("./aaaa.csv", "r", encoding="shift_jis", errors="", newline="" ) as f:
    lst = csv.reader(f, delimiter=",")
    df = pd.DataFrame(lst)
df
タイトルとURLをコピーしました