csvファイルのデータをPythonのpandasで読み込むときに以下のエラーとなってしまいはまりました。
pandas.errors.ParserError: Error tokenizing data. C error: Expected 24 fieldder._tokenize_rowss in line 4, saw 28
このエラーは、行と列のデータが不規則な場合に発生します。
列がやたら多いCSVデータで発生しました。
この記事では、エラーの一つ「pandas.errors.ParserError」の原因と具体的な解決方法について解説します。
CSVデータのPandas読み込みエラーの対応方法
CSVファイルをPandasで読み込む際に発生する「pandas.errors.ParserError」は、行と列のデータが不整合である場合に多く見られます。例えば、特定の行で期待されるフィールド数より多いデータが含まれている場合に発生します。
エラーの解決方法
対応方法としては、以下の2つの方法があります
- CSVファイルの直接編集
- ファイルの読み込み設定の工夫
直接編集はおかしな行や列を削除することで解決しますが、ファイルが増えてくると対応が難しくなりスマートではありません。
今回の記事では、ファイルの読み込み設定の工夫で解決しましたので紹介します。
Pandasのread_csvの設定変更
解決策です。先に列名を必要な数用意します(今回は100列分)
あとは、普通にpandasのread_csvでcsvファイルを読み込みます。読み込んだデータの列名はcol_1-100になっていますので、リネームするなど適宜対応すればOKです。
import pandas as pd
# 列名
col_names = ['col_{}'.format(i) for i in range(100)]
df = pd.read_csv('test.csv', names=col_names)
print(df.head(5))
というわけで、PandasでCSVファイルが読み込めないときに、先に列名を作るとエラーを回避することができます。
まとめ
PandasでCSVファイルの読み込みエラーに対処するためには、事前に列名を指定する方法が効果的です。これにより、多くのデータを効率よく処理することができます。
関連記事
記事タイトル | 説明 |
---|---|
Google Colaboratoryアップデート後のSeleniumエラー解決法:コードコピペで解決! | Google Colaboratoryのアップデート後に生じるSeleniumエラーの解決法を紹介します。 |
ChatGPTのCode InterpreterのCSVファイルの扱いについての注意点 | ChatGPTでPythonを使う際のCSVファイルの読み込みエラーの対策について説明します。 |
Python関連書籍
コメント